diff options
author | Peter Mikkelsen <petermikkelsen10@gmail.com> | 2025-07-31 22:33:56 +0200 |
---|---|---|
committer | Peter Mikkelsen <petermikkelsen10@gmail.com> | 2025-07-31 22:33:56 +0200 |
commit | 5e12467c860372dfa10323365fb0df9db79c8f9b (patch) | |
tree | 13e81afa3accb633fdb0ab0d655244ea752814a5 /src/boot.c | |
parent | 0a817a5a74c328229f8a732fc3ec22d8fd7dc20d (diff) |
APIC/ACPI/keyboard stuff. I now get interrupts when a key is pressed
Diffstat (limited to 'src/boot.c')
-rw-r--r-- | src/boot.c | 15 |
1 files changed, 14 insertions, 1 deletions
@@ -41,11 +41,16 @@ REQUEST struct limine_entry_point_request entry_point_request = { .entry = bootmain }; -REQUEST struct limine_hhdm_request hhdm_request = { +REQUEST struct limine_hhdm_request hhdm_request = { .id = LIMINE_HHDM_REQUEST, .revision = 0 }; +REQUEST struct limine_rsdp_request rsdp_request = { + .id = LIMINE_RSDP_REQUEST, + .revision = 0 +}; + LIMINE(".limine_requests_start") LIMINE_REQUESTS_START_MARKER LIMINE(".limine_requests_end") LIMINE_REQUESTS_END_MARKER @@ -55,6 +60,12 @@ cpu_count(void) return mp_request.response->cpu_count; } +uint8_t +boot_apic_id(void) +{ + return mp_request.response->bsp_lapic_id; +} + static void bootmain(void) { @@ -66,6 +77,7 @@ bootmain(void) assert(paging_request.response); assert(mp_request.response); assert(hhdm_request.response); + assert(rsdp_request.response); assert(framebuffer_request.response->framebuffer_count >= 1); @@ -92,6 +104,7 @@ bootmain(void) } info.memmaps = memmaps; info.physbase = hhdm_request.response->offset; + info.rsdp = rsdp_request.response->address; main(&info); halt(); |