diff options
author | Luigi Rizzo <rizzo@icir.org> | 2006-04-14 14:08:19 +0000 |
---|---|---|
committer | Luigi Rizzo <rizzo@icir.org> | 2006-04-14 14:08:19 +0000 |
commit | e43bc6634dc60ca897a848ca3301f52c74330279 (patch) | |
tree | b68f48482e463e9c31126b2e3e24fca1dd2f6c82 /channels/chan_zap.c | |
parent | 33a3a7375a4917455495c08c8602bfe453580fd1 (diff) |
This rather large commit changes the way modules are loaded.
As partly documented in loader.c and include/asterisk/module.h,
modules are now expected to return all of their methods and flags
into a structure 'mod_data', and are normally loaded with RTLD_NOW
| RTLD_LOCAL, so symbols are resolved immediately and conflicts
should be less likely. Only in a small number of cases (res_*,
typically) modules are loaded RTLD_GLOBAL, so they can export
symbols.
The core of the change is only the two files loader.c and
include/asterisk/module.h, all the rest is simply adaptation of the
existing modules to the new API, a rather mechanical (but believe
me, time and finger-consuming!) process whose detail you can figure
out by svn diff'ing any single module.
Expect some minor compilation issue after this change, please
report it on mantis http://bugs.digium.com/view.php?id=6968
so we collect all the feedback in one place.
I am just sorry that this change missed SVN version number 20000!
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@20003 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels/chan_zap.c')
-rw-r--r-- | channels/chan_zap.c | 34 |
1 files changed, 14 insertions, 20 deletions
diff --git a/channels/chan_zap.c b/channels/chan_zap.c index ce0bcd461..c7341d29c 100644 --- a/channels/chan_zap.c +++ b/channels/chan_zap.c @@ -148,14 +148,6 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") /*! \brief Signaling types that need to use MF detection should be placed in this macro */ #define NEED_MFDETECT(p) (((p)->sig == SIG_FEATDMF) || ((p)->sig == SIG_FEATDMF_TA) || ((p)->sig == SIG_E911) || ((p)->sig == SIG_FGC_CAMA) || ((p)->sig == SIG_FGC_CAMAMF) || ((p)->sig == SIG_FEATB)) -static const char desc[] = "Zapata Telephony" -#ifdef ZAPATA_PRI - " w/PRI" -#endif -#ifdef ZAPATA_R2 - " w/R2" -#endif -; static const char tdesc[] = "Zapata Telephony Driver" #ifdef ZAPATA_PRI @@ -10367,7 +10359,7 @@ static int __unload_module(void) return 0; } -int unload_module() +static int unload_module(void *mod) { #ifdef ZAPATA_PRI int y; @@ -11225,7 +11217,7 @@ static int setup_zap(int reload) return 0; } -int load_module(void) +static int load_module(void *mod) { int res; @@ -11374,7 +11366,7 @@ static int zt_sendtext(struct ast_channel *c, const char *text) } -int reload(void) +static int reload(void *mod) { int res = 0; @@ -11386,18 +11378,20 @@ int reload(void) return 0; } -int usecount() +static const char *description(void) { - return usecnt; -} - -const char *description() -{ - return (char *) desc; + return "Zapata Telephony" +#ifdef ZAPATA_PRI + " w/PRI" +#endif +#ifdef ZAPATA_R2 + " w/R2" +#endif + ; } -const char *key() +static const char *key(void) { return ASTERISK_GPL_KEY; } - +STD_MOD(MOD_1, reload, NULL, NULL); |