diff --git a/src/platform/redox/libredox.rs b/src/platform/redox/libredox.rs index 337d9329791f44a852b4de9d70f52c694b43bb5e..2d1649482617a4919fecb5d4dcb924119a6459c4 100644 --- a/src/platform/redox/libredox.rs +++ b/src/platform/redox/libredox.rs @@ -157,3 +157,28 @@ pub unsafe extern "C" fn redox_sigprocmask_v1( ) -> RawResult { Error::mux(super::signal::sigprocmask_impl(how as i32, new, old).map(|()| 0)) } +#[no_mangle] +pub unsafe extern "C" fn redox_mmap_v1( + addr: *mut (), + unaligned_len: usize, + prot: u32, + flags: u32, + fd: usize, + offset: u64, +) -> RawResult { + Error::mux(syscall::fmap( + fd, + &syscall::Map { + address: addr as usize, + offset: offset as usize, + size: unaligned_len, + flags: syscall::MapFlags::from_bits_truncate( + ((prot << 16) | (flags & 0xffff)) as usize, + ), + }, + )) +} +#[no_mangle] +pub unsafe extern "C" fn redox_munmap_v1(addr: *mut (), unaligned_len: usize) -> RawResult { + Error::mux(syscall::funmap(addr as usize, unaligned_len)) +}