From 472cecea084d3843071f54d204a4132f214a2291 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Gr=C3=A9goire?= Date: Wed, 16 Sep 2026 16:59:22 -0400 Subject: [PATCH] ex: move vmem to ex --- src/ex/init.zig | 2 ++ src/ex/private.zig | 1 + src/ex/root.zig | 1 + src/{mm => ex}/vmem.zig | 5 ++++- src/mm/init.zig | 1 - src/mm/private.zig | 4 ++-- 6 files changed, 10 insertions(+), 4 deletions(-) rename src/{mm => ex}/vmem.zig (99%) diff --git a/src/ex/init.zig b/src/ex/init.zig index a1f13ec..036ae25 100644 --- a/src/ex/init.zig +++ b/src/ex/init.zig @@ -9,12 +9,14 @@ const exp = ex.private; const rtl = @import("rtl"); pub fn init() void { + exp.vmem.init(); mm.init(); ps.init(); pl.late_init(); mm.late_init(); ke.sched.late_init(); + exp.work.init() catch @panic("e"); exp.string.init(); diff --git a/src/ex/private.zig b/src/ex/private.zig index b0da270..8eaf1c5 100644 --- a/src/ex/private.zig +++ b/src/ex/private.zig @@ -2,3 +2,4 @@ pub const init_mod = @import("init.zig"); pub const work = @import("work.zig"); pub const init = init_mod.init; pub const string = @import("string.zig"); +pub const vmem = @import("vmem.zig"); diff --git a/src/ex/root.zig b/src/ex/root.zig index 9c0d559..94a838b 100644 --- a/src/ex/root.zig +++ b/src/ex/root.zig @@ -5,6 +5,7 @@ const p = private; pub const WorkItem = p.work.WorkItem; pub const DelayedWorkItem = p.work.DelayedWorkItem; pub const InternedString = p.string.InternedString; +pub const Arena = p.vmem.Arena; pub const init = p.init; diff --git a/src/mm/vmem.zig b/src/ex/vmem.zig similarity index 99% rename from src/mm/vmem.zig rename to src/ex/vmem.zig index aa6615a..3e5a745 100644 --- a/src/mm/vmem.zig +++ b/src/ex/vmem.zig @@ -561,7 +561,10 @@ pub const Arena = struct { options: AllocOptions, ) ?struct { usize, *Segment } { // Start from rotor if we have one, otherwise from the beginning. - const start_entry = if (self.rotor) |ro| ro.link.next else self.list.first(); + const start_entry = if (self.rotor) |ro| + ro.link.next + else + self.list.first(); // Search from rotor to end of list. var entry = start_entry; diff --git a/src/mm/init.zig b/src/mm/init.zig index 3796891..a0cd4d6 100644 --- a/src/mm/init.zig +++ b/src/mm/init.zig @@ -7,7 +7,6 @@ const config = @import("config"); pub fn init() linksection(r.init) void { mmp.phys.init(); mmp.zone.early_init(); - mmp.vmem.init(); mmp.heap.init(); } diff --git a/src/mm/private.zig b/src/mm/private.zig index 04a5b8d..3e2032a 100644 --- a/src/mm/private.zig +++ b/src/mm/private.zig @@ -2,7 +2,6 @@ const config = @import("config"); pub const phys = @import("phys.zig"); pub const pmap = @import("pmap.zig"); pub const init = @import("init.zig"); -pub const vmem = @import("vmem.zig"); pub const heap = @import("heap.zig"); pub const zone = @import("zone.zig"); pub const PMap = pmap.PMap; @@ -10,10 +9,11 @@ pub const tlb = @import("tlb.zig"); pub const balance = @import("balance.zig"); const ke = @import("root").ke; +const ex = @import("root").ex; pub const Space = struct { pmap: PMap, - arena: vmem.Arena, + arena: ex.Arena, lock: ke.Mutex, };