diff --git a/src/unistd/src/lib.rs b/src/unistd/src/lib.rs index e83c8a8280f66f38f3c4645d9c597db65841e40a..c3fd2de6483789a9fe91b8f98c05bc499c62883e 100644 --- a/src/unistd/src/lib.rs +++ b/src/unistd/src/lib.rs @@ -5,6 +5,7 @@ extern crate platform; pub use platform::types::*; +use core::ptr; pub const R_OK: c_int = 1; pub const W_OK: c_int = 2; @@ -381,7 +382,13 @@ pub extern "C" fn setuid(uid: uid_t) -> c_int { #[no_mangle] pub extern "C" fn sleep(seconds: c_uint) -> c_uint { - unimplemented!(); + let rqtp = timespec { + tv_sec: seconds as i64, + tv_nsec: 0, + }; + let rmtp = ptr::null_mut(); + platform::nanosleep(&rqtp, rmtp); + 0 } #[no_mangle] @@ -441,7 +448,12 @@ pub extern "C" fn unlink(path: *const c_char) -> c_int { #[no_mangle] pub extern "C" fn usleep(useconds: useconds_t) -> c_int { - unimplemented!(); + let rqtp = timespec { + tv_sec: 0, + tv_nsec: (useconds * 1000).into(), + }; + let rmtp = ptr::null_mut(); + platform::nanosleep(&rqtp, rmtp) } #[no_mangle]