diff --git a/src/kernel.c b/src/kernel.c index 1dcbb66..c7c5019 100644 --- a/src/kernel.c +++ b/src/kernel.c @@ -42,15 +42,16 @@ void kernel_main(multiboot_info_t *mbd, uint32_t magic) init_idt(); init_memory(mbd, magic); load_drivers(); - // kprintf(KERN_ALERT - // "I see no way to confuse an array of 256 seg:off pairs with a - // " "complex 8*unknown quantity -byte descriptor table. -- Troy - // " "Martin 03:50, 22 March 2009 (UTC)\n"); create_kernel_task(); - kill(0, 4); - for (size_t i = 0; i < 10000; i++) - free_pages(alloc_pages(1, NULL), 1); - signal(4, bozo); - kill(0, 4); + PRINT_UINT(vsize(vmalloc(1231231))); + for (uint8_t i = 0; i < 10; i++) + vmalloc(32); + /* + uint32_t count = 0; + while (vmalloc(10)) + count++; + kprintf("%d allocations done\n", count); + */ + // kpanic("uwu"); shell_init(); } diff --git a/src/kpanic.c b/src/kpanic.c index 05b457a..9ff1f7a 100644 --- a/src/kpanic.c +++ b/src/kpanic.c @@ -17,6 +17,7 @@ __attribute__((noreturn)) void kpanic(const char *format, ...) /* terminal_set_bg_color(VGA_COLOR_BLUE); */ /* terminal_clear(); */ + kprintf("kpanic: "); va_start(va, format); kvprintf(format, &va); va_end(va); @@ -31,8 +32,5 @@ __attribute__((noreturn)) void kpanic(const char *format, ...) /* print_stack(); */ /* kprintf("\n\n"); */ /* kprintf("PRESS SPACE TO REBOOT"); */ - clear_registers(); - while (terminal_getkey().scan_code != KEY_SPACE) - ; - reboot(); + __asm__ __volatile__("jmp panic"); } diff --git a/src/clear_register.s b/src/panic.s similarity index 75% rename from src/clear_register.s rename to src/panic.s index 6e400f8..e1f96aa 100644 --- a/src/clear_register.s +++ b/src/panic.s @@ -1,9 +1,9 @@ .intel_syntax noprefix .section .text - .global clear_registers + .global panic -clear_registers: +panic: xor eax, eax xor ebx, ebx xor ecx, ecx @@ -12,3 +12,8 @@ clear_registers: xor ebp, ebp xor esi, esi xor edi, edi + + cli +loop: + hlt + jmp loop