-# define MODULE_INIT \
- int CONCATENATE( MODULE_NAME, InitModule ) ( module_t *p_module )
-# define MODULE_ACTIVATE \
- int CONCATENATE( MODULE_NAME, ActivateModule ) ( module_t *p_module )
-# define MODULE_DEACTIVATE \
- int CONCATENATE( MODULE_NAME, DeactivateModule )( module_t *p_module )
+
+# define MODULE_INIT_START \
+ int CONCATENATE( MODULE_NAME, InitModule ) ( module_t *p_module ) \
+ { \
+ p_module->psz_name = MODULE_STRING; \
+ p_module->psz_version = VERSION;
+
+# define MODULE_INIT_STOP \
+ return( 0 ); \
+ }
+
+# define MODULE_ACTIVATE_START \
+ int CONCATENATE( MODULE_NAME, ActivateModule ) ( module_t *p_module ) \
+ { \
+ p_module->p_functions = \
+ ( module_functions_t * )malloc( sizeof( module_functions_t ) ); \
+ if( p_module->p_functions == NULL ) \
+ { \
+ return( -1 ); \
+ } \
+ p_module->p_config = p_config;
+
+# define MODULE_ACTIVATE_STOP \
+ return( 0 ); \
+ }
+
+# define MODULE_DEACTIVATE_START \
+ int CONCATENATE( MODULE_NAME, DeactivateModule )( module_t *p_module ) \
+ { \
+ free( p_module->p_functions );
+
+# define MODULE_DEACTIVATE_STOP \
+ return( 0 ); \
+ }
+