From 520d148e0ff5275b2a86c356d3d26274fa0e7d92 Mon Sep 17 00:00:00 2001 From: "Chloe M." Date: Tue, 23 Jun 2026 23:50:19 +0000 Subject: [PATCH] stos: bpal: Put RSDP base in BPAL handle Signed-off-by: Chloe M. --- paw/stos/head/ke/bpal.h | 2 ++ paw/stos/ke/bpal/proto/limine.c | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/paw/stos/head/ke/bpal.h b/paw/stos/head/ke/bpal.h index f7bcb95..133e401 100644 --- a/paw/stos/head/ke/bpal.h +++ b/paw/stos/head/ke/bpal.h @@ -73,6 +73,7 @@ typedef struct { * * @KernelBase: Kernel load base * @Framebuffer: Framebuffer info + * @RsdpBase: ACPI RSDP base * @MemEntryIdx: Callback to get memory map entry by index * @ModuleLookup: Lookup a module * @CommandLine: Kernel command line @@ -80,6 +81,7 @@ typedef struct { typedef struct { UPTR KernelBase; BPAL_FRAMEBUFFER Framebuffer; + VOID *RsdpBase; ST_STATUS(*MemEntryIdx)(USIZE Idx, MEMMAP_ENTRY *Result); ST_STATUS(*ModuleLookup)(CHAR *Path, BPAL_MODULE *Result); const CHAR *CommandLine; diff --git a/paw/stos/ke/bpal/proto/limine.c b/paw/stos/ke/bpal/proto/limine.c index d9d9603..f22bb51 100644 --- a/paw/stos/ke/bpal/proto/limine.c +++ b/paw/stos/ke/bpal/proto/limine.c @@ -65,6 +65,13 @@ static struct limine_executable_cmdline_request CmdLineReq = { .revision = 0 }; +/* RSDP request */ +static struct limine_rsdp_response *RsdpResp = NULL; +static volatile struct limine_rsdp_request RsdpReq = { + .id = LIMINE_RSDP_REQUEST_ID, + .revision = 0 +}; + static ST_STATUS LimineModuleLookup(CHAR *Path, BPAL_MODULE *Result) { @@ -144,6 +151,7 @@ KeBpalLimineInit(BPAL_HANDLE *Handle) FbResp = FbReq.response; MapResp = MapReq.response; CmdLineResp = CmdLineReq.response; + RsdpResp = RsdpReq.response; DTRACE( "slut handed control by %s %s\n", @@ -171,4 +179,5 @@ KeBpalLimineInit(BPAL_HANDLE *Handle) Handle->KernelBase = HHDMResp->offset; Handle->MemEntryIdx = LimineMemEntryIdx; Handle->ModuleLookup = LimineModuleLookup; + Handle->RsdpBase = RsdpResp->address; }