hachem.wtf
aboutsummaryrefslogtreecommitdiff
path: root/boot/limine.zig
diff options
context:
space:
mode:
authorhachem <im@hachem.wtf>2026-09-12 04:08:33 +0200
committerhachem <im@hachem.wtf>2026-09-12 04:09:21 +0200
commit4f540af34d7a88547d60bed7bd28850e6d0e18ab (patch)
tree2b98bc0010a00822169459ef0d37f2ddda6f3b99 /boot/limine.zig
parentc34524767c9eac650f16dbe9059c24af2acd1397 (diff)
feat: BAREEE METTALLLLLL REVOOOOO
Diffstat (limited to 'boot/limine.zig')
-rw-r--r--boot/limine.zig14
1 files changed, 14 insertions, 0 deletions
diff --git a/boot/limine.zig b/boot/limine.zig
index 914aca8..f1ed158 100644
--- a/boot/limine.zig
+++ b/boot/limine.zig
@@ -66,6 +66,20 @@ pub const FramebufferRequest = extern struct {
response: ?*FramebufferResponse = null,
};
+// ask limine for a bigger bootstrap stack than its ~64 KiB default cause
+// revo's VM init builds a large struct on the stack and runs a fat recursive
+// descent parser to register its stdlib, which page faults the machine
+pub const StackSizeResponse = extern struct {
+ revision: u64,
+};
+
+pub const StackSizeRequest = extern struct {
+ id: [4]u64 = requestId(0x224ef0460a8e8926, 0xe1cb0fc25f46ea3d),
+ revision: u64 = 0,
+ response: ?*StackSizeResponse = null,
+ stack_size: u64,
+};
+
// HHDM = higher-half direct map, limine linearly maps ALL of physical memory
// starting at `offset`, so any physical address p is reachable at p + offset
// This is how we touch physical frames without setting up our own page tables