#include "multiboot.h" #include #include #include #include #include #include "memory/mm.h" extern void init_idt(); extern void init_gdt(); extern void init_pic(); extern void init_pit(); extern int init_ps2(); extern void enable_interrupts(); void* page = NULL; void kmain(uint32_t magic, multiboot_info* mbi) { extern print_stream_t vga_print_stream; extern print_stream_t* kout; kout = &vga_print_stream; kout->trunc(); kprintf("RockOS booting...\n"); init_gdt(); kprintf("GDT set\n"); init_idt(); kprintf("IDT set\n"); init_pic(); kprintf("PIC initialized\n"); init_pit(); kprintf("PIT initialized\n"); int result = init_ps2(); if (result == -1) { kprintf("PS2 init failed\n"); return; } kprintf("PS2 initialized\n"); if (!(mbi->flags & (1 << 6))) { return; } init_mm((void*)mbi->mmap_addr, mbi->mmap_length); uint32_t mem_size = total_free_memory(); kprintf("Total available memory: %d MB\n", mem_size / 1024 / 1024); init_paging(); enable_paging(); kprintf("Paging enabled\n"); // enable_interrupts(); // kprintf("Interrupts enabled\n"); while(1); }