feat: add Rust userspace support; fix TLS layout for p_align < 16; kill whole process on sibling-thread faults
This commit is contained in:
1 parent
a81298fb24
commit
f8b8f9610f
31 files changed
+1076
-38
No files matched your search
@@ -0,0 +1,18 @@
|
||||
//! Time and sleeping.
|
||||
|
||||
use core::time::Duration;
|
||||
|
||||
use crate::sys;
|
||||
|
||||
/// Milliseconds since boot (monotonic).
|
||||
pub fn uptime_ms() -> u64 {
|
||||
unsafe { sys::syscall0(sys::SYS_GETMILLISECONDS) as u64 }
|
||||
}
|
||||
|
||||
/// Sleep for at least `d`, rounded up to the 1 ms scheduler tick.
|
||||
pub fn sleep(d: Duration) {
|
||||
let ms = d.as_millis().min(u64::MAX as u128) as u64 + u64::from(d.subsec_nanos() % 1_000_000 != 0);
|
||||
if ms > 0 {
|
||||
unsafe { sys::syscall1(sys::SYS_SLEEP_MS, ms) };
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user