mm: add Space

This commit is contained in:
Loïc Grégoire
2026-06-20 12:41:22 -04:00
parent 9e212277b5
commit 16d5c6e5c6
8 changed files with 29 additions and 23 deletions
+5 -8
View File
@@ -3,20 +3,17 @@ const ke = r.ke;
const mm = r.mm;
const mi = mm.private;
var heap_lock: ke.QSpinLock = .init();
var heap_arena: mm.vmem.Arena = undefined;
pub fn init() void {
heap_arena.init("kernel heap", mi.impl.kernel_heap_base, r.tib(16), mm.page_size) catch @panic("failed to initialize kernel heap arena");
mi.kernel_space.arena.init("kernel heap", mi.impl.kernel_heap_base, r.tib(16), mm.page_size) catch @panic("failed to initialize kernel heap arena");
}
pub fn alloc(size: usize) mm.Error!*anyopaque {
const ipl = heap_lock.acquire();
defer heap_lock.release(ipl);
const ipl = mi.kernel_space.lock.acquire();
defer mi.kernel_space.lock.release(ipl);
const addr = try heap_arena.alloc(size, .{});
const addr = try mi.kernel_space.arena.alloc(size, .{});
mi.kernel_pmap.map_range_allocating(addr, size, .{
mi.kernel_space.pmap.map_range_allocating(addr, size, .{
.read = true,
.write = true,
.global = true,