mirror of
https://github.com/rdmsr/zag.git
synced 2026-10-31 15:28:21 +00:00
mm: add Space
This commit is contained in:
+5
-8
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user