瀏覽代碼

sleep and usleep

Paul Sajna 7 年之前
父節點
當前提交
e99857d125
共有 1 個文件被更改,包括 14 次插入2 次删除
  1. 14 2
      src/unistd/src/lib.rs

+ 14 - 2
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]