X-Git-Url: https://jfr.im/git/solanum.git/blobdiff_plain/66e1914beb3c8290b6537ec9aaa5c80be63f75e0..968dee680f777012773c21a23dd698b693634104:/include/modules.h diff --git a/include/modules.h b/include/modules.h index 0b83bd60..0c746728 100644 --- a/include/modules.h +++ b/include/modules.h @@ -28,6 +28,7 @@ #include "defaults.h" #include "setup.h" #include "parse.h" +#include "client.h" /* for IDLEN */ #define MAPI_CHARYBDIS 2 @@ -42,10 +43,12 @@ struct module const char *version; const char *description; lt_dlhandle address; - int core; - int origin; + int core; /* This is int for backwards compat reasons */ + int origin; /* Ditto */ + char *path; int mapi_version; void *mapi_header; /* actually struct mapi_mheader_av */ + rb_dlink_node node; }; #define MAPI_MAGIC_HDR 0x4D410000 @@ -68,9 +71,9 @@ typedef struct { const char *hapi_name; hookfn fn; + enum hook_priority priority; } mapi_hfn_list_av1; - #define MAPI_CAP_CLIENT 1 #define MAPI_CAP_SERVER 2 @@ -117,23 +120,36 @@ struct mapi_mheader_av2 #define DECLARE_MODULE_AV2(name, reg, unreg, cl, hl, hfnlist, caplist, v, desc) \ struct mapi_mheader_av2 _mheader = { MAPI_V2, reg, unreg, cl, hl, hfnlist, caplist, v, desc, DATECODE} +struct modreload +{ + char module[BUFSIZE]; + char id[IDLEN]; +}; + /* add a path */ void mod_add_path(const char *path); void mod_clear_paths(void); +/* cap-notify utilities */ +extern void mod_remember_clicaps(void); +extern void mod_notify_clicaps(void); + /* load a module */ extern void load_module(char *path); /* load all modules */ -extern void load_all_modules(int warn); +extern void load_all_modules(bool warn); /* load core modules */ -extern void load_core_modules(int); +extern void load_core_modules(bool); + +extern bool unload_one_module(const char *, bool); +extern bool load_one_module(const char *, int, bool); +extern bool load_a_module(const char *, bool, int, bool); +extern struct module *findmodule_byname(const char *); +extern void init_modules(void); -extern int unload_one_module(const char *, int); -extern int load_one_module(const char *, int, int); -extern int load_a_module(const char *, int, int, int); -extern int findmodule_byname(const char *); -extern void modules_init(void); +extern rb_dlink_list module_list; +extern rb_dlink_list mod_paths; #endif /* INCLUDED_modules_h */