Kernel/modules - Add support for argument strings to alternate loaders
authorJohn Hodge <[email protected]>
Sun, 9 Feb 2014 06:00:20 +0000 (14:00 +0800)
committerJohn Hodge <[email protected]>
Sun, 9 Feb 2014 06:00:20 +0000 (14:00 +0800)
KernelLand/Kernel/include/modules.h
KernelLand/Kernel/modules.c
KernelLand/Modules/Interfaces/UDI/main.c

index 1c56146..cb436a6 100644 (file)
@@ -102,7 +102,7 @@ typedef struct sModuleLoader
        struct sModuleLoader    *Next;  //!< Kernel Only - Next loader in list
        char    *Name;  //!< Friendly name for the loader
         int    (*Detector)(void *Base);        //!< Simple detector function
-        int    (*Loader)(void *Base);  //!< Initialises the module
+        int    (*Loader)(void *Base, const char *ArgumentString);      //!< Initialises the module
         int    (*Unloader)(void *Base);        //!< Calls module's cleanup
 } PACKED tModuleLoader;
 
index 5fff929..cbcf859 100644 (file)
@@ -383,7 +383,7 @@ int Module_LoadFile(const char *Path, const char *ArgString)
 
        if( loader )
        {
-               if( loader->Loader(base) )
+               if( loader->Loader(base, ArgString) )
                {
                        Binary_Unload(base);
                        return EINVAL;
index 7a61d81..1c9fc29 100644 (file)
@@ -19,7 +19,7 @@
 // === PROTOTYPES ===
  int   UDI_Install(char **Arguments);
  int   UDI_DetectDriver(void *Base);
- int   UDI_LoadDriver(void *Base);
+ int   UDI_LoadDriver(void *Base, const char *ArgumentString);
 tUDI_DriverModule      *UDI_int_LoadDriver(void *LoadBase, const udi_init_t *info, const char *udiprops, size_t udiprops_size);
 const tUDI_MetaLang    *UDI_int_GetMetaLangByName(const char *Name);
 
@@ -73,7 +73,7 @@ int UDI_DetectDriver(void *Base)
 /**
  * \fn int UDI_LoadDriver(void *Base)
  */
-int UDI_LoadDriver(void *Base)
+int UDI_LoadDriver(void *Base, const char *ArgumentString)
 {
        udi_init_t      *info;
        char    *udiprops = NULL;
@@ -90,6 +90,9 @@ int UDI_LoadDriver(void *Base)
 
        UDI_int_LoadDriver(Base, info, udiprops, udiprops_end - udiprops);
        
+       // TODO: Parse 'ArgumentString' and extract properties for module/instances
+       // - Including debug flag
+       
        return 0;
 }
 

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