From 4d94bc0ea892d960aa893b948fe7041276b63841 Mon Sep 17 00:00:00 2001 From: Drew Galbraith Date: Sun, 28 Jul 2024 19:29:23 -0700 Subject: [PATCH] Make unsafe more limited in memory initialization. --- rust/lib/mammoth/src/mem.rs | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/rust/lib/mammoth/src/mem.rs b/rust/lib/mammoth/src/mem.rs index dac6aa0..6f49415 100644 --- a/rust/lib/mammoth/src/mem.rs +++ b/rust/lib/mammoth/src/mem.rs @@ -19,18 +19,17 @@ pub fn init_heap() { syscall::syscall(zion::kZionMemoryObjectCreate, &obj_req) .expect("Failed to create memory object"); - unsafe { - let mut vaddr: u64 = 0; - let vmas_req = zion::ZAddressSpaceMapReq { - vmmo_cap, - vmas_cap: SELF_VMAS_CAP, - align: 0x2000, - vaddr: &mut vaddr as *mut u64, - vmas_offset: 0, - }; + let mut vaddr: u64 = 0; + let vmas_req = zion::ZAddressSpaceMapReq { + vmmo_cap, + vmas_cap: unsafe { SELF_VMAS_CAP }, + align: 0x2000, + vaddr: &mut vaddr as *mut u64, + vmas_offset: 0, + }; - syscall::syscall(zion::kZionAddressSpaceMap, &vmas_req) - .expect("Failed to map memory object"); + syscall::syscall(zion::kZionAddressSpaceMap, &vmas_req).expect("Failed to map memory object"); + unsafe { ALLOCATOR.lock().init(vaddr as *mut u8, size as usize); CAN_ALLOC = true; }