aboutsummaryrefslogtreecommitdiff
path: root/src/kernel/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/main.c')
-rw-r--r--src/kernel/main.c42
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
+