X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Kernel%2Finclude%2Fmodules.h;h=d72813369ea6f0804559ae13449466536dc087d7;hb=05c5d7098a054591d75113ecc3503979cc5754c9;hp=d4fb49c5735c198d078fb2911d210986b6afcd21;hpb=e939fc0ced4d445c24696636fe660dddbe035b1c;p=tpg%2Facess2.git diff --git a/Kernel/include/modules.h b/Kernel/include/modules.h index d4fb49c5..d7281336 100644 --- a/Kernel/include/modules.h +++ b/Kernel/include/modules.h @@ -53,7 +53,7 @@ * Contains the identifiers of the required modules. */ #define MODULE_DEFINE(_flags,_ver,_ident,_entry,_deinit,_deps...) \ - char *EXPAND_CONCAT(_DriverDeps_,_ident)[]={_deps};\ + const 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),\ @@ -71,10 +71,10 @@ typedef struct sModule Uint8 Flags; //!< Module Flags Uint16 Version; //!< Module Version in Major.Minor 8.8 form struct sModule *Next; //!< Next module in list (not to be touched by the driver) - char *Name; //!< Module Name/Identifier + const char *Name; //!< Module Name/Identifier int (*Init)(char **Arguments); //!< Module initialiser / entrypoint - void (*Deinit)(); //!< Cleanup Function - char **Dependencies; //!< NULL terminated list of dependencies + void (*Deinit)(void); //!< Cleanup Function + const char **Dependencies; //!< NULL terminated list of dependencies } PACKED tModule; /** @@ -113,4 +113,11 @@ typedef struct sModuleLoader */ extern int Module_RegisterLoader(tModuleLoader *Loader); +/** + * \brief Initialises (if needed) a named module + * \param Name Module name to initialise + * \return -1 on not existing, 0 if the module initialised (or if it was already initialised) + */ +extern int Module_EnsureLoaded(const char *Name); + #endif