}
EXPORT_SYMBOL_GPL(klgd_lock_plugins);
+void klgd_lock_plugins_spin(struct mutex *lock)
+{
+ while (!mutex_trylock(lock));
+ printk(KERN_DEBUG "KLGD: Plugin state locked (spinning)\n");
+}
+EXPORT_SYMBOL_GPL(klgd_lock_plugins_spin);
+
struct klgd_command * klgd_make_command(const char * const bytes, const size_t length)
{
struct klgd_command *cmd = kzalloc(sizeof(struct klgd_command), GFP_KERNEL);
void klgd_free_stream(struct klgd_command_stream *s);
int klgd_init(struct klgd_main *ctx, void *dev_ctx, int (*callback)(void *, const struct klgd_command_stream *), const unsigned long plugin_count);
void klgd_lock_plugins(struct mutex *lock);
+void klgd_lock_plugins_spin(struct mutex *lock);
struct klgd_command * klgd_make_cmd(const char * const bytes);
int klgd_register_plugin(struct klgd_main *ctx, const size_t idx, struct klgd_plugin *plugin, bool dontfree);
void klgd_unlock_plugins(struct mutex *lock);