From 20b97ea7c0dbbdc13800e12ff5c86c00c4a342ec Mon Sep 17 00:00:00 2001 From: aqua Date: Fri, 8 Mar 2024 17:24:49 +0200 Subject: Bazel build --- kernel/kernel.c | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 kernel/kernel.c (limited to 'kernel/kernel.c') diff --git a/kernel/kernel.c b/kernel/kernel.c new file mode 100644 index 0000000..98269c1 --- /dev/null +++ b/kernel/kernel.c @@ -0,0 +1,57 @@ +/* *** 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) {} +} -- cgit v1.2.1