Add msync function and stub for Redox

This commit is contained in:
Jeremy Soller
2019-12-01 10:58:47 -07:00
parent 15e6d23538
commit 2ac349d2d2
4 changed files with 26 additions and 4 deletions
+4
View File
@@ -310,6 +310,10 @@ impl Pal for Sys {
e(syscall!(MPROTECT, addr, len, prot)) as c_int
}
unsafe fn msync(addr: *mut c_void, len: usize, flags: c_int) -> c_int {
e(syscall!(MSYNC, addr, len, flags)) as c_int
}
unsafe fn munmap(addr: *mut c_void, len: usize) -> c_int {
e(syscall!(MUNMAP, addr, len)) as c_int
}
+2
View File
@@ -118,6 +118,8 @@ pub trait Pal {
unsafe fn mprotect(addr: *mut c_void, len: usize, prot: c_int) -> c_int;
unsafe fn msync(addr: *mut c_void, len: usize, flags: c_int) -> c_int;
unsafe fn munmap(addr: *mut c_void, len: usize) -> c_int;
fn nanosleep(rqtp: *const timespec, rmtp: *mut timespec) -> c_int;
+12
View File
@@ -675,6 +675,18 @@ impl Pal for Sys {
)) as c_int
}
unsafe fn msync(addr: *mut c_void, len: usize, flags: c_int) -> c_int {
eprintln!("msync {:p} {:x} {:x}", addr, len, flags);
e(Err(syscall::Error::new(syscall::ENOSYS))) as c_int
/* TODO
e(syscall::msync(
addr as usize,
len,
flags
)) as c_int
*/
}
unsafe fn munmap(addr: *mut c_void, _len: usize) -> c_int {
if e(syscall::funmap(addr as usize)) == !0 {
return !0;