diff options
Diffstat (limited to 'rt/src/plugin.c')
| -rw-r--r-- | rt/src/plugin.c | 32 |
1 files changed, 13 insertions, 19 deletions
diff --git a/rt/src/plugin.c b/rt/src/plugin.c index 0799b9c..3edf486 100644 --- a/rt/src/plugin.c +++ b/rt/src/plugin.c @@ -1,15 +1,14 @@ #include "plugin.h" -#include "foreign_intf.h" #include "wl.h" -#include <sys/stat.h> -#include <unistd.h> #include <ctype.h> #include <dlfcn.h> #include <pthread.h> #include <stdio.h> #include <stdlib.h> #include <string.h> +#include <sys/stat.h> +#include <unistd.h> /* Utility function for showing the marshalled states as hex code */ static void shx(uint8_t *state, uint32_t sz) @@ -59,7 +58,7 @@ static int plugin_hot_reload_same_state_action_(plugin_t *plugin, void *ignore) return plugin_hot_reload_same_state(plugin); } -void do_request_hot_reload(void *plugv) +void montis_do_request_hot_reload(void *plugv) { plugin_t *plugin = plugv; @@ -77,7 +76,7 @@ static int plugin_do_log(plugin_t *plugin, void *chrs) return 0; } -void do_request_log(void *plugv, const char *str) +void montis_do_request_log(void *plugv, const char *str) { plugin_t *plugin = plugv; @@ -89,27 +88,28 @@ void do_request_log(void *plugv, const char *str) } } -static int plugin_do_exit(void *plugv, int ec) +static int montis_plugin_do_exit(void *plugv, int ec) { exit(ec); return 0; } -void do_request_exit(void *plugv, int ec) +void montis_do_request_exit(void *plugv, int ec) { plugin_t *plugin = plugv; size_t n = plugin->n_requested_actions++; if (n < 8) { plugin->requested_actions[n].action = - (int (*)(plugin_t *, void *))plugin_do_exit; + (int (*)(plugin_t *, void *))montis_plugin_do_exit; plugin->requested_actions[n].int_arg = ec; plugin->requested_actions[n].arg_dtor = NULL; } } -static void* plugin_get_seat(void* ctx) { - struct montis_server* server = wl_container_of(ctx, server, plugin); +void *montis_plugin_get_seat(void *ctx) +{ + struct montis_server *server = wl_container_of(ctx, server, plugin); return server->seat; } @@ -136,13 +136,7 @@ static int load_plugin_from_file_(int argc, char **argv, const char *filename, plugin->argc = argc; plugin->argv = argv; - plugin->foreign_intf.ctx = plugin; - plugin->foreign_intf.request_hot_reload = do_request_hot_reload; - plugin->foreign_intf.do_log = do_request_log; - plugin->foreign_intf.request_exit = do_request_exit; - plugin->foreign_intf.get_seat = plugin_get_seat; - - plugin->plugin_load(plugin->argc, plugin->argv, &plugin->foreign_intf); + plugin->plugin_load(plugin->argc, plugin->argv); end: return ec; } @@ -231,7 +225,7 @@ int plugin_hot_reload(int argc, char **argv, const char *filepath, } printf("Hot starting plugin ...\n"); - plugin->state = plugin->plugin_hot_start(marshalled_state, sz); + plugin->state = plugin->plugin_hot_start(plugin, marshalled_state, sz); fail: free(marshalled_state); @@ -261,6 +255,6 @@ void plugin_run_requested_actions(plugin_t *plugin) void plugin_cold_start(plugin_t *plugin) { lock(plugin); - plugin->state = plugin->plugin_cold_start(); + plugin->state = plugin->plugin_cold_start(plugin); unlock(plugin); } |