}
EXPORT_SYMBOL_GPL(klgd_lock_plugins);
+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);
+ if (!cmd)
+ return NULL;
+
+ *(char **)(&cmd->bytes) = bytes;
+ cmd->length = length;
+
+ return cmd;
+}
+
int klgd_register_plugin(struct klgd_main *ctx, size_t idx, struct klgd_plugin *plugin)
{
struct klgd_main_private *priv = ctx->private;
void klgd_deinit(struct klgd_main *ctx);
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);
+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);
void klgd_unlock_plugins(struct mutex *lock);
void klgd_unlock_plugins_sched(struct mutex *lock);