Kernel - More work on ARM port
[tpg/acess2.git] / Kernel / system.c
index 7c5ff32..a996038 100644 (file)
@@ -23,7 +23,7 @@ typedef struct
 }      tConfigFile;
 typedef struct
 {
-       char    *Name;          // Name
+       const char      *Name;          // Name
         int    MinArgs;        // Minimum number of arguments
         int    MaxArgs;        // Maximum number of arguments
        Uint    IntArgs;        // Bitmap of arguments that should be treated as integers
@@ -32,10 +32,10 @@ typedef struct
 }      tConfigCommand;
 
 // === IMPORTS ===
-extern void    Arch_LoadBootModules();
-extern int     Modules_LoadBuiltins();
+extern void    Arch_LoadBootModules(void);
+extern int     Modules_LoadBuiltins(void);
 extern void    Modules_SetBuiltinParams(char *Name, char *ArgString);
-extern void    Debug_SetKTerminal(char *File);
+extern void    Debug_SetKTerminal(const char *File);
 
 // === PROTOTYPES ===
 void   System_Init(char *Commandline);
@@ -64,7 +64,7 @@ const tConfigCommand  caConfigCommands[] = {
 #define NUM_CONFIG_COMMANDS    (sizeof(caConfigCommands)/sizeof(caConfigCommands[0]))
 
 // === GLOBALS ===
-char   *gsConfigScript = "/Acess/Conf/BootConf.cfg";
+const char     *gsConfigScript = "/Acess/Conf/BootConf.cfg";
 char   *argv[32];
  int   argc;
 
@@ -99,7 +99,8 @@ void System_ParseCommandLine(char *ArgString)
         int    i;
        char    *str;
        
-       Log_Log("Config", "Kernel Invocation \"%s\"", ArgString);
+       Log_Log("Config", "Kernel Invocation (%p) \"%s\"", ArgString, ArgString);
+       Log_Log("Config", "Kernel Invocation '0x%x 0x%x'", ArgString[0], ArgString[1]);
        
        // --- Get Arguments ---
        str = ArgString;
@@ -126,7 +127,7 @@ void System_ParseCommandLine(char *ArgString)
                argc ++;        // Count last argument
        
        // --- Parse Arguments (Pass 1) ---
-       for( i = 1; i < argc; i++ )
+       for( i = 0; i < argc; i++ )
        {
                switch(argv[i][0])
                {
@@ -152,8 +153,9 @@ void System_ParseCommandLine(char *ArgString)
 void System_ExecuteCommandLine(void)
 {
         int    i;
-       for( i = 1; i < argc; i++ )
+       for( i = 0; i < argc; i++ )
        {
+               Log("argv[%i] = '%s'", i, argv[i]);
                switch(argv[i][0])
                {
                // --- VFS ---
@@ -219,7 +221,8 @@ void System_ParseVFS(char *Arg)
 }
 
 /**
- * \biref Parse a module argument string
+ * \brief Parse a module argument string
+ * \param Arg  Argument string
  */
 void System_ParseModuleArgs(char *Arg)
 {
@@ -545,6 +548,7 @@ tConfigFile *System_Int_ParseFile(char *FileData)
                start = ptr;
                
                ret->Lines[i].nParts = 0;
+               ret->Lines[i].Parts = NULL;
                
                // Count parts
                for(;;)
@@ -637,6 +641,12 @@ tConfigFile        *System_Int_ParseFile(char *FileData)
                }
        }
        
+       if( i < ret->nLines ) {
+               ret->Lines[i].nParts = 0;
+               ret->Lines[i].Parts = NULL;
+               Log_Log("System", "Cleaning up final empty line");
+       }
+       
        LEAVE('p', ret);
        return ret;
 }

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