]> code.delx.au - pulseaudio/blobdiff - src/pulsecore/modinfo.c
tag modules that may only be loaded once at most especially, and enforce that in...
[pulseaudio] / src / pulsecore / modinfo.c
index da2df6535b22c5fac5bc4dac2ebf616b5ffad165..d1a78fbb15840a8f7754859c0411386b393c0d55 100644 (file)
 #define PA_SYMBOL_DESCRIPTION "pa__get_description"
 #define PA_SYMBOL_USAGE "pa__get_usage"
 #define PA_SYMBOL_VERSION "pa__get_version"
+#define PA_SYMBOL_LOAD_ONCE "pa__load_once"
 
 pa_modinfo *pa_modinfo_get_by_handle(lt_dlhandle dl, const char *module_name) {
     pa_modinfo *i;
     const char* (*func)(void);
+    pa_bool_t (*func2) (void);
 
     pa_assert(dl);
 
@@ -61,6 +63,9 @@ pa_modinfo *pa_modinfo_get_by_handle(lt_dlhandle dl, const char *module_name) {
     if ((func = (const char* (*)(void)) pa_load_sym(dl, module_name, PA_SYMBOL_VERSION)))
         i->version = pa_xstrdup(func());
 
+    if ((func2 = (pa_bool_t (*)(void)) pa_load_sym(dl, module_name, PA_SYMBOL_LOAD_ONCE)))
+        i->load_once = func2();
+
     return i;
 }