diff options
Diffstat (limited to 'include/mysql')
-rw-r--r-- | include/mysql/plugin.h | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/include/mysql/plugin.h b/include/mysql/plugin.h index a7b3606061f..2093043744a 100644 --- a/include/mysql/plugin.h +++ b/include/mysql/plugin.h @@ -37,10 +37,25 @@ be a st_mysql_plugin struct for each plugin to be declared. */ -#define mysql_declare_plugin \ -int _mysql_plugin_interface_version_= MYSQL_PLUGIN_INTERFACE_VERSION; \ -int _mysql_sizeof_struct_st_plugin_= sizeof(struct st_mysql_plugin); \ + +#ifndef MYSQL_DYNAMIC_PLUGIN +#define __DECLARE_PLUGIN(NAME, VERSION, PSIZE, DECLS) \ +int VERSION= MYSQL_PLUGIN_INTERFACE_VERSION; \ +int PSIZE= sizeof(struct st_mysql_plugin); \ +struct st_mysql_plugin DECLS[]= { +#else +#define __DECLARE_PLUGIN(NAME, VERSION, PSIZE, DECLS) \ +int _mysql_plugin_interface_version_= MYSQL_PLUGIN_INTERFACE_VERSION; \ +int _mysql_sizeof_struct_st_plugin_= sizeof(struct st_mysql_plugin); \ struct st_mysql_plugin _mysql_plugin_declarations_[]= { +#endif + +#define _DECLARE_PLUGIN(NAME) \ +__DECLARE_PLUGIN(NAME, builtin_ ## NAME ## _plugin_interface_version, \ + builtin_ ## NAME ## _sizeof_struct_st_plugin, \ + builtin_ ## NAME ## _plugin) + +#define mysql_declare_plugin(NAME) _DECLARE_PLUGIN(NAME) #define mysql_declare_plugin_end ,{0,0,0,0,0,0,0,0,0}} /* |