annotate src/lib/module-dir.h @ 9575:0a00dcc4f0ea HEAD

lib-storage: Allow shared namespace prefix to use %variable modifiers.
author Timo Sirainen <tss@iki.fi>
date Wed, 26 May 2010 17:07:51 +0100
parents e4eb71ae8e96
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6410
e4eb71ae8e96 Changed .h ifdef/defines to use <NAME>_H format.
Timo Sirainen <tss@iki.fi>
parents: 5186
diff changeset
1 #ifndef MODULE_DIR_H
e4eb71ae8e96 Changed .h ifdef/defines to use <NAME>_H format.
Timo Sirainen <tss@iki.fi>
parents: 5186
diff changeset
2 #define MODULE_DIR_H
1466
5ecbc9f82019 missing
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
3
5ecbc9f82019 missing
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
4 struct module {
2084
9ba79ebae6ab Added support for password scheme plugins. auth module dir defaults under
Timo Sirainen <tss@iki.fi>
parents: 1466
diff changeset
5 char *path, *name;
9ba79ebae6ab Added support for password scheme plugins. auth module dir defaults under
Timo Sirainen <tss@iki.fi>
parents: 1466
diff changeset
6
1466
5ecbc9f82019 missing
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
7 void *handle;
5148
7f2c39d7a2cc module_dir_load() doesn't call init() functions anymore. Added a new
Timo Sirainen <tss@iki.fi>
parents: 4167
diff changeset
8 void (*init)(void);
1466
5ecbc9f82019 missing
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
9 void (*deinit)(void);
5ecbc9f82019 missing
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
10
5ecbc9f82019 missing
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
11 struct module *next;
5ecbc9f82019 missing
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
12 };
5ecbc9f82019 missing
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
13
4074
dadc6e2cccb8 Replaced mail_use_modules and mail_modules settings with mail_plugins and
Timo Sirainen <tss@iki.fi>
parents: 3988
diff changeset
14 /* Load modules in given directory. module_names is a space separated list of
5186
a7627141ec7f Don't compare to PACKAGE_VERSION in lib/ core directly, rather make
Timo Sirainen <tss@iki.fi>
parents: 5148
diff changeset
15 module names to load, or NULL to load everything. If version is non-NULL and
a7627141ec7f Don't compare to PACKAGE_VERSION in lib/ core directly, rather make
Timo Sirainen <tss@iki.fi>
parents: 5148
diff changeset
16 the module contains a version symbol, fail the load if they're different. */
4074
dadc6e2cccb8 Replaced mail_use_modules and mail_modules settings with mail_plugins and
Timo Sirainen <tss@iki.fi>
parents: 3988
diff changeset
17 struct module *module_dir_load(const char *dir, const char *module_names,
5186
a7627141ec7f Don't compare to PACKAGE_VERSION in lib/ core directly, rather make
Timo Sirainen <tss@iki.fi>
parents: 5148
diff changeset
18 bool require_init_funcs, const char *version);
5148
7f2c39d7a2cc module_dir_load() doesn't call init() functions anymore. Added a new
Timo Sirainen <tss@iki.fi>
parents: 4167
diff changeset
19 /* Call init() in all modules */
7f2c39d7a2cc module_dir_load() doesn't call init() functions anymore. Added a new
Timo Sirainen <tss@iki.fi>
parents: 4167
diff changeset
20 void module_dir_init(struct module *modules);
3988
ab1a0a377851 Added module_dir_deinit().
Timo Sirainen <tss@iki.fi>
parents: 3879
diff changeset
21 /* Call deinit() in all modules and mark them NULL so module_dir_unload()
ab1a0a377851 Added module_dir_deinit().
Timo Sirainen <tss@iki.fi>
parents: 3879
diff changeset
22 won't do it again. */
ab1a0a377851 Added module_dir_deinit().
Timo Sirainen <tss@iki.fi>
parents: 3879
diff changeset
23 void module_dir_deinit(struct module *modules);
1466
5ecbc9f82019 missing
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
24 /* Unload all modules */
3879
928229f8b3e6 deinit, unref, destroy, close, free, etc. functions now take a pointer to
Timo Sirainen <tss@iki.fi>
parents: 3863
diff changeset
25 void module_dir_unload(struct module **modules);
1466
5ecbc9f82019 missing
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
26
2084
9ba79ebae6ab Added support for password scheme plugins. auth module dir defaults under
Timo Sirainen <tss@iki.fi>
parents: 1466
diff changeset
27 void *module_get_symbol(struct module *module, const char *symbol);
9ba79ebae6ab Added support for password scheme plugins. auth module dir defaults under
Timo Sirainen <tss@iki.fi>
parents: 1466
diff changeset
28
4167
32dd28f96dce Allow giving module names in non-basename form.
Timo Sirainen <tss@iki.fi>
parents: 4074
diff changeset
29 /* Returns module's base name from the filename. */
32dd28f96dce Allow giving module names in non-basename form.
Timo Sirainen <tss@iki.fi>
parents: 4074
diff changeset
30 const char *module_file_get_name(const char *fname);
32dd28f96dce Allow giving module names in non-basename form.
Timo Sirainen <tss@iki.fi>
parents: 4074
diff changeset
31
1466
5ecbc9f82019 missing
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
32 #endif