kernel: now panics since there's no init

This commit is contained in:
RaphProductions 2025-05-12 08:53:17 +02:00
parent a838d99a5a
commit 6af9752e24
3 changed files with 26 additions and 18 deletions

View file

@ -1,7 +1,5 @@
#include "exec/elf.h" #include "exec/elf.h"
#include "exec/exec.h" #include "exec/exec.h"
#include "fs/tapefs.h"
#include "fs/vfs.h"
#include "mm/liballoc/liballoc.h" #include "mm/liballoc/liballoc.h"
#include "mm/pmm.h" #include "mm/pmm.h"
#include "mm/vma.h" #include "mm/vma.h"
@ -91,6 +89,8 @@ void kmain(void) {
pit_init(1000); pit_init(1000);
sched_init(); sched_init();
panic("No working initialization program found. (This is normal due to Soaplin's current state, so please do not report this as a bug)");
log("kernel - Soaplin initialized sucessfully.\n"); log("kernel - Soaplin initialized sucessfully.\n");
while (1) while (1)

View file

@ -44,20 +44,6 @@ static void __panic_dump_regs() {
__panic_regdump.rflags = 0; __panic_regdump.rflags = 0;
__panic_regdump.rsp = 0; __panic_regdump.rsp = 0;
__panic_regdump.ss = 0; __panic_regdump.ss = 0;
}
void panic() {
__panic_dump_regs();
log(" _ __ _ ___ _ \n");
log("| |/ /___ _ _ _ _ ___| | | _ \\__ _ _ _ (_)__ \n");
log("| ' </ -_) '_| ' \\/ -_) | | _/ _` | ' \\| / _|_ _ _ \n");
log("|_|\\_\\___|_| |_||_\\___|_| |_| \\__,_|_||_|_\\__(_|_|_)\n");
log("\n");
log("Due to an error that can't be recovered from, Soaplin was needed to "
"halt the PC.\n");
log("Please report this error to the Soaplin developers, along with the "
"information provided below:\n");
log("-- REGISTER DUMP --\n"); log("-- REGISTER DUMP --\n");
log("RDI: %p, RSI: %p, RDX: %p, RCX: %p, R8: %p, R9: %p\n", log("RDI: %p, RSI: %p, RDX: %p, RCX: %p, R8: %p, R9: %p\n",
__panic_regdump.rdi, __panic_regdump.rsi, __panic_regdump.rdx, __panic_regdump.rdi, __panic_regdump.rsi, __panic_regdump.rdx,
@ -67,7 +53,29 @@ void panic() {
__panic_regdump.r10, __panic_regdump.r11, __panic_regdump.r12); __panic_regdump.r10, __panic_regdump.r11, __panic_regdump.r12);
log("R13: %p, R14: %p, R15: %p\n", __panic_regdump.r13, __panic_regdump.r14, log("R13: %p, R14: %p, R15: %p\n", __panic_regdump.r13, __panic_regdump.r14,
__panic_regdump.r15); __panic_regdump.r15);
log("System halted."); }
void __panic_display_ascii_art() {
log(" _ __ _ ___ _ \n");
log("| |/ /___ _ _ _ _ ___| | | _ \\__ _ _ _ (_)__ \n");
log("| ' </ -_) '_| ' \\/ -_) | | _/ _` | ' \\| / _|_ _ _ \n");
log("|_|\\_\\___|_| |_||_\\___|_| |_| \\__,_|_||_|_\\__(_|_|_)\n");
log("\n");
log("Due to an error that can't be recovered from, Soaplin was needed to "
"halt the PC.\n");
}
void panic(char *msg) {
__panic_display_ascii_art();
log("\n");
log("%s\n", msg);
log("\n");
__panic_dump_regs();
log("System halted: Please restart your computer manually.\n");
asm("cli"); asm("cli");
for (;;) for (;;)

View file

@ -1 +1 @@
void panic(); void panic(char *msg);