diff --git a/KernelLand/Kernel/system.c b/KernelLand/Kernel/system.c index 748c744f0c0abf0a2e3330fb1d823b7df4b664fe..9eac8255dbc244a9575543e0212b8b96eab378b0 100644 --- a/KernelLand/Kernel/system.c +++ b/KernelLand/Kernel/system.c @@ -22,6 +22,7 @@ void System_ExecuteCommandLine(void); void System_ParseVFS(char *Arg); void System_ParseModuleArgs(char *Arg); void System_ParseSetting(char *Arg); +void System_EmergencyConsole(void); // === GLOBALS === const char *gsInitBinary = "/Acess/SBin/init"; @@ -41,6 +42,7 @@ void System_Init(char *CommandLine) Modules_LoadBuiltins(); Arch_LoadBootModules(); + Log_Log("Config", "Running command line '%s", CommandLine); System_ExecuteCommandLine(); // - Execute the Config Script @@ -52,6 +54,9 @@ void System_Init(char *CommandLine) VFS_Open("/Devices/pts/vt0", VFS_OPENFLAG_WRITE|VFS_OPENFLAG_USER); // 1: stdout VFS_DuplicateFD(1, 2); // 2: stderr Proc_Execve(gsInitBinary, args, &args[1], 0); + + System_EmergencyConsole(); + Log_KernelPanic("System", "Unable to spawn init '%s'", gsInitBinary); } @@ -274,3 +279,7 @@ void System_ParseSetting(char *Arg) } } +void System_EmergencyConsole(void) +{ + // TODO: Support an emergency kernel-land console (with FS viewing support) +}