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
);