diff options
Diffstat (limited to 'src/kernel/main.c')
| -rw-r--r-- | src/kernel/main.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/kernel/main.c b/src/kernel/main.c new file mode 100644 index 0000000..7584827 --- /dev/null +++ b/src/kernel/main.c @@ -0,0 +1,42 @@ +#ifndef MÜLL_KERN +#define MÜLL_KERN + +/* + * müll_kernel + */ + +// C includes +#include <stddef.h> + +// external includes +#include "limine.h" + +// API includes +#include "api/io.h" + +__attribute__((used, section(".limine_requests"))) +static volatile LIMINE_BASE_REVISION(2); + +static volatile struct limine_framebuffer_request fb_request = { + .id = LIMINE_FRAMEBUFFER_REQUEST, + .revision = 0 +}; + +void kmain(void) __attribute__((noreturn)); +void _start(void) { + if (!fb_request.response) { + for (;;) __asm__("hlt"); + } + + struct limine_framebuffer *fb = + fb_request.response->framebuffers[0]; + + uint32_t *pix = fb->address; + pix[0] = 0x00FFFFFF; // white pixel + + //return kernel_main(); + for (;;) __asm__("hlt"); +} + +#endif + |