# HG changeset patch # User Timo Sirainen # Date 1139148852 -7200 # Node ID ab1a0a37785172361873e876ce41a7199e6dfb82 # Parent 9099825aac9adff3b95a284cd85ee61d960191c0 Added module_dir_deinit(). diff -r 9099825aac9a -r ab1a0a377851 src/lib/module-dir.c --- a/src/lib/module-dir.c Sun Feb 05 15:33:23 2006 +0200 +++ b/src/lib/module-dir.c Sun Feb 05 16:14:12 2006 +0200 @@ -187,6 +187,18 @@ return modules; } +void module_dir_deinit(struct module *modules) +{ + struct module *module; + + for (module = modules; module != NULL; module = module->next) { + if (module->deinit != NULL) { + module->deinit(); + module->deinit = NULL; + } + } +} + void module_dir_unload(struct module **modules) { struct module *module, *next; @@ -208,7 +220,11 @@ return NULL; } -void module_dir_unload(struct module *modules __attr_unused__) +void module_dir_deinit(struct module *modules __attr_unused__) +{ +} + +void module_dir_unload(struct module **modules __attr_unused__) { } diff -r 9099825aac9a -r ab1a0a377851 src/lib/module-dir.h --- a/src/lib/module-dir.h Sun Feb 05 15:33:23 2006 +0200 +++ b/src/lib/module-dir.h Sun Feb 05 16:14:12 2006 +0200 @@ -12,6 +12,9 @@ /* Load all modules in given directory. */ struct module *module_dir_load(const char *dir, bool require_init_funcs); +/* Call deinit() in all modules and mark them NULL so module_dir_unload() + won't do it again. */ +void module_dir_deinit(struct module *modules); /* Unload all modules */ void module_dir_unload(struct module **modules);