aboutsummaryrefslogtreecommitdiff
path: root/src/kernel/main.c
diff options
context:
space:
mode:
authorczjstmax <jstmaxlol@disroot.org>2026-02-24 15:19:31 +0100
committerczjstmax <jstmaxlol@disroot.org>2026-02-24 15:19:31 +0100
commita08957914b955eb08d85e5397403871b5f44f30d (patch)
treec5879a119e5ef981e6b6e25129be2cf5bcef5ef0 /src/kernel/main.c
parent2420e3f52b62580af9cdd661fb441733e437daf9 (diff)
fix limine configuration
Signed-off-by: czjstmax <jstmaxlol@disroot.org>
Diffstat (limited to 'src/kernel/main.c')
-rw-r--r--src/kernel/main.c29
1 files changed, 16 insertions, 13 deletions
diff --git a/src/kernel/main.c b/src/kernel/main.c
index 7584827..e62740c 100644
--- a/src/kernel/main.c
+++ b/src/kernel/main.c
@@ -1,6 +1,3 @@
-#ifndef MÜLL_KERN
-#define MÜLL_KERN
-
/*
* müll_kernel
*/
@@ -9,27 +6,35 @@
#include <stddef.h>
// external includes
-#include "limine.h"
+#include "headers/limine.h"
-// API includes
-#include "api/io.h"
+// limine things
+__attribute__((used, section(".limine_requests_start")))
+static volatile uint64_t limine_requests_start_marker[] = LIMINE_REQUESTS_START_MARKER;
__attribute__((used, section(".limine_requests")))
-static volatile LIMINE_BASE_REVISION(2);
+static volatile uint64_t limine_base_revision[] = LIMINE_BASE_REVISION(3);
-static volatile struct limine_framebuffer_request fb_request = {
- .id = LIMINE_FRAMEBUFFER_REQUEST,
+__attribute__((used, section(".limine_requests")))
+static volatile struct limine_framebuffer_request framebuffer_request = {
+ .id = LIMINE_FRAMEBUFFER_REQUEST_ID,
.revision = 0
};
+__attribute__((used, section(".limine_requests_end")))
+static volatile uint64_t limine_requests_end_marker[] = LIMINE_REQUESTS_END_MARKER;
+
+// API includes
+#include "api/io.h"
+
void kmain(void) __attribute__((noreturn));
void _start(void) {
- if (!fb_request.response) {
+ if (!framebuffer_request.response) {
for (;;) __asm__("hlt");
}
struct limine_framebuffer *fb =
- fb_request.response->framebuffers[0];
+ framebuffer_request.response->framebuffers[0];
uint32_t *pix = fb->address;
pix[0] = 0x00FFFFFF; // white pixel
@@ -38,5 +43,3 @@ void _start(void) {
for (;;) __asm__("hlt");
}
-#endif
-