Changes to the module loader to handle specific errors from modules
[tpg/acess2.git] / Kernel / include / modules.h
index 591dbf9..8dc720a 100644 (file)
 # error "Unknown architecture when determining MODULE_ARCH_ID ('" #ARCHDIR "')"
 #endif
 
-#define MODULE_DEFINE(_flags,_ver,_ident,_entry,_deinit,_deps...)      char *_DriverDeps_##_ident[]={_deps};\
-       tModule __attribute__ ((section ("KMODULES"),unused)) _DriverInfo_##_ident=\
-       {MODULE_MAGIC,MODULE_ARCH_ID,_flags,_ver,NULL,#_ident,_entry,_deinit,_DriverDeps_##_ident}
+#define MODULE_DEFINE(_flags,_ver,_ident,_entry,_deinit,_deps...) \
+       char *EXPAND_CONCAT(_DriverDeps_,_ident)[]={_deps};\
+       tModule __attribute__ ((section ("KMODULES"),unused))\
+       EXPAND_CONCAT(_DriverInfo_,_ident)=\
+       {MODULE_MAGIC,MODULE_ARCH_ID,_flags,_ver,NULL,EXPAND_STR(_ident),\
+       _entry,_deinit,EXPAND_CONCAT(_DriverDeps_,_ident)}
 
 typedef struct sModule {
        Uint32  Magic;
@@ -33,8 +36,15 @@ typedef struct sModule {
        char    **Dependencies; // NULL Terminated List
 } __attribute__((packed)) tModule;
 
-#define MODULE_INIT_SUCCESS    1
-#define MODULE_INIT_FAILURE    0
+enum eModuleErrors
+{
+       MODULE_ERR_OK,  //!< No Error
+       MODULE_ERR_MISC,        //!< Misc Error
+       MODULE_ERR_NOTNEEDED,   //!< Module not needed
+       MODULE_ERR_MALLOC,      //!< Error with malloc/realloc/calloc
+       
+       MODULE_ERR_MAX
+};
 
 /**
  * \brief Module Loader definition

UCC git Repository :: git.ucc.asn.au