/* * This file contains the entrance point for the Kernel proper. The code here * is called by the bootloader when it finishes. The kmain routine is * responsible for setting up memory and starting the processes running. */ #include #include #include "multiboot.h" extern char _bss[], _end[]; /* Kernel main function */ _Noreturn void kmain(uint32_t esp, struct MultibootInfo *mbinfo) { void *ebda = (void *) (*((uint16_t *) 0x040E) << 4); memset(_bss, 0, _end - _bss); while (1); }