/* *** glitch kernel *** * spdx-license-identifier: ISC * description: kernel entry point * */ #include "conf.h" #include "mem.h" #include #include #include #include #include #include #include #include FILE *stdin; FILE *stdout; FILE *stderr; void kmain(void) { stderr = uart_init(COM1); vmm_map(0xb8000, 0xc03ff000); stdout = vga_init((void *)0xc03ff000); printf("glitch [version " VERSION "] [" CC "]\n"); fprintf(stderr, "glitch [version " VERSION "] [" CC "]\n"); { struct CPUVersion v; char vendor[13] = {'\0'}; unsigned int eax; __get_cpuid(0, &eax, (unsigned int *)vendor, (unsigned int *)(vendor + 8), (unsigned int *)(vendor + 4)); __get_cpuid(1, (unsigned int *)&v, &eax, &eax, &eax); printf("cpuid: %s family %u model %u stepping %u\n", vendor, family(v), model(v), v.stepping); fprintf(stderr, "cpuid: %s family %u model %u stepping %u\n", vendor, family(v), model(v), v.stepping); } pic_init(); ps2_ctrl_init(); ps2_keyboard_init(); mouse_init(); pic_enable(); fprintf(stderr, "interrupts enabled\n"); /* alloc4M(); char *c = (char *)0xc0700000; if (*c == 0) printf("c is 0\r\n"); */ while (1) {} }