X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Kernel%2Fsystem.c;h=2097f9ba688930724bbf8b2bdd544a43aa46f1e2;hb=54746c855c6e2fe42fde9f93b0ce3f41aeefc2e5;hp=b30f4d044e628da050ee8b026027b5a6d2da8fc0;hpb=1e25b20fd5d119d3b5673d6a31f60b2da676de98;p=tpg%2Facess2.git diff --git a/Kernel/system.c b/Kernel/system.c index b30f4d04..2097f9ba 100644 --- a/Kernel/system.c +++ b/Kernel/system.c @@ -39,24 +39,16 @@ char *gsConfigScript = "/Acess/Conf/BootConf.cfg"; // === CODE === void System_Init(char *ArgString) -{ - // - Start Builtin Drivers & Filesystems - //StartupPrint("Scanning PCI Bus..."); - //PCI_Install(); - StartupPrint("Loading DMA..."); - DMA_Install(); - StartupPrint("Loading staticly compiled modules..."); - Modules_LoadBuiltins(); - +{ // Set the debug to be echoed to the terminal - StartupPrint("Kernel now echoes to VT6 (Ctrl-Alt-F7)"); - Debug_SetKTerminal("/Devices/VTerm/6"); + StartupPrint("Kernel now echoes to VT7 (Ctrl-Alt-F8)"); + Debug_SetKTerminal("/Devices/VTerm/7"); // - Parse Kernel's Command Line System_ParseCommandLine(ArgString); // - Execute the Config Script - Log("Executing config script..."); + Log_Log("Config", "Executing config script..."); System_ExecuteScript(); } @@ -71,14 +63,16 @@ void System_ParseCommandLine(char *ArgString) int i; char *str; - Log("Kernel Command Line: \"%s\"", ArgString); + Log_Log("Config", "Kernel Invocation \"%s\"", ArgString); // --- Get Arguments --- str = ArgString; for( argc = 0; argc < 32; argc++ ) { - while(*str == ' ') str++; // Eat Whitespace - if(*str == '\0') { argc--; break;} // End of string + // Eat Whitespace + while(*str == ' ') str++; + // Check for the end of the string + if(*str == '\0') { argc--; break;} argv[argc] = str; while(*str && *str != ' ') { @@ -88,7 +82,7 @@ void System_ParseCommandLine(char *ArgString) }*/ str++; } - if(*str == '\0') break; // End of string + if(*str == '\0') break; // Check for EOS *str = '\0'; // Cap off argument string str ++; // and increment the string pointer } @@ -120,7 +114,7 @@ void System_ParseVFS(char *Arg) // Check if the equals was found if( *value == '\0' ) { - Warning("Expected '=' in the string '%s'", Arg); + Log_Warning("Config", "Expected '=' in the string '%s'", Arg); return ; } @@ -131,7 +125,7 @@ void System_ParseVFS(char *Arg) // - Symbolic Link = if(value[0] == '/') { - Log("Symbolic link '%s' pointing to '%s'", Arg, value); + Log_Log("Config", "Symbolic link '%s' pointing to '%s'", Arg, value); VFS_Symlink(Arg, value); } // - Mount =: @@ -146,13 +140,13 @@ void System_ParseVFS(char *Arg) } // Create Mountpoint if( (fd = VFS_Open(Arg, 0)) == -1 ) { - Log("Creating directory '%s'", Arg, value); + Log_Log("Config", "Creating directory '%s'", Arg, value); VFS_MkDir( Arg ); } else { VFS_Close(fd); } // Mount - Log("Mounting '%s' to '%s' ('%s')", dev, Arg, value); + Log_Log("Config", "Mounting '%s' to '%s' ('%s')", dev, Arg, value); VFS_Mount(dev, Arg, value, ""); } } @@ -172,10 +166,10 @@ void System_ParseSetting(char *Arg) // Check for boolean/flag (no '=') if(*value == '\0') { - if(strcmp(Arg, "") == 0) { - } else { - Warning("Kernel flag '%s' is not recognised", Arg); - } + //if(strcmp(Arg, "") == 0) { + //} else { + Log_Warning("Config", "Kernel flag '%s' is not recognised", Arg); + //} } else { @@ -183,10 +177,10 @@ void System_ParseSetting(char *Arg) value ++; // and eat it's position if(strcmp(Arg, "SCRIPT") == 0) { - Log("Config Script: '%s'", value); + Log_Log("Config", "Config Script: '%s'", value); gsConfigScript = value; } else { - Warning("Kernel config setting '%s' is not recognised", Arg); + Log_Warning("Config", "Kernel config setting '%s' is not recognised", Arg); } } @@ -207,7 +201,7 @@ void System_ExecuteScript() // Open Script fp = VFS_Open(gsConfigScript, VFS_OPENFLAG_READ); if(fp == -1) { - Warning("[CFG] Passed script '%s' does not exist", gsConfigScript); + Log_Warning("Config", "Passed script '%s' does not exist", gsConfigScript); return; } @@ -225,28 +219,31 @@ void System_ExecuteScript() // Parse File file = System_Int_ParseFile(fData); - // Loop lines + // Parse each line for( i = 0; i < file->nLines; i++ ) { line = &file->Lines[i]; if( line->nParts == 0 ) continue; // Skip blank - // Mount - if( strcmp(line->Parts[0], "mount") == 0 ) { + // Mount Device + if( strcmp(line->Parts[0], "mount") == 0 ) + { if( line->nParts != 4 ) { - Warning("Configuration command 'mount' requires 3 arguments, %i given", + Log_Warning("Config", "Configuration command 'mount' requires 3 arguments, %i given", line->nParts-1); continue; } - //Log("[CFG ] Mount '%s' to '%s' (%s)", + //Log_Log("Config", "Mount '%s' to '%s' (%s)", // line->Parts[1], line->Parts[2], line->Parts[3]); //! \todo Use an optional 4th argument for the options string VFS_Mount(line->Parts[1], line->Parts[2], line->Parts[3], ""); } - // Module - else if(strcmp(line->Parts[0], "module") == 0) { + // Load a Module + else if(strcmp(line->Parts[0], "module") == 0) + { if( line->nParts < 2 || line->nParts > 3 ) { - Warning("Configuration command 'module' requires 1 or 2 arguments, %i given", + Log_Warning("CFG", + "Configuration command 'module' requires 1 or 2 arguments, %i given", line->nParts-1); continue; } @@ -255,59 +252,64 @@ void System_ExecuteScript() else Module_LoadFile(line->Parts[1], ""); } - // UDI Module - else if(strcmp(line->Parts[0], "udimod") == 0) { + // Load a UDI Module + else if(strcmp(line->Parts[0], "udimod") == 0) + { if( line->nParts != 2 ) { - Warning("Configuration command 'udimod' requires 1 argument, %i given", + Log_Warning("Config", "Configuration command 'udimod' requires 1 argument, %i given", line->nParts-1); continue; } - Log("[CFG ] Load UDI Module '%s'", line->Parts[1]); + Log_Log("Config", "Load UDI Module '%s'", line->Parts[1]); Module_LoadFile(line->Parts[1], ""); } - // EDI Module - else if(strcmp(line->Parts[0], "edimod") == 0) { + // Load a EDI Module + else if(strcmp(line->Parts[0], "edimod") == 0) + { if( line->nParts != 2 ) { - Warning("Configuration command 'edimod' requires 1 argument, %i given", + Log_Warning("Config", "Configuration command 'edimod' requires 1 argument, %i given", line->nParts-1); continue; } - Log("[CFG ] Load EDI Module '%s'", line->Parts[1]); + Log_Log("Config", "Load EDI Module '%s'", line->Parts[1]); Module_LoadFile(line->Parts[1], ""); } - // Symbolic Link - else if(strcmp(line->Parts[0], "symlink") == 0) { + // Create a Symbolic Link + else if(strcmp(line->Parts[0], "symlink") == 0) + { if( line->nParts != 3 ) { - Warning("Configuration command 'symlink' requires 2 arguments, %i given", + Log_Warning("Config", "Configuration command 'symlink' requires 2 arguments, %i given", line->nParts-1); continue; } - Log("[CFG ] Symlink '%s' pointing to '%s'", + Log_Log("Config", "Symlink '%s' pointing to '%s'", line->Parts[1], line->Parts[2]); VFS_Symlink(line->Parts[1], line->Parts[2]); } - // Create Directory - else if(strcmp(line->Parts[0], "mkdir") == 0) { + // Create a Directory + else if(strcmp(line->Parts[0], "mkdir") == 0) + { if( line->nParts != 2 ) { - Warning("Configuration command 'mkdir' requires 1 argument, %i given", + Log_Warning("Config", "Configuration command 'mkdir' requires 1 argument, %i given", line->nParts-1); continue; } - Log("[CFG ] New Directory '%s'", line->Parts[1]); + Log_Log("Config", "New Directory '%s'", line->Parts[1]); VFS_MkDir(line->Parts[1]); } // Spawn a process - else if(strcmp(line->Parts[0], "spawn") == 0) { + else if(strcmp(line->Parts[0], "spawn") == 0) + { if( line->nParts != 2 ) { - Warning("Configuration command 'spawn' requires 1 argument, %i given", + Log_Warning("Config", "Configuration command 'spawn' requires 1 argument, %i given", line->nParts-1); continue; } - Log("[CFG ] Starting '%s' as a new task", line->Parts[1]); + Log_Log("Config", "Starting '%s' as a new task", line->Parts[1]); Proc_Spawn(line->Parts[1]); } else { - Warning("Unknown configuration command '%s' on line %i", + Log_Warning("Config", "Unknown configuration command '%s' on line %i", line->Parts[0], line->TrueLine );