safa_api/syscalls/
misc.rs

1use crate::syscalls::types::RequiredPtrMut;
2
3use super::{define_syscall, SyscallNum};
4
5define_syscall! {
6    SyscallNum::SysShutdown => {
7        /// Shuts down the system
8        sysshutdown() unreachable
9    },
10    SyscallNum::SysReboot => {
11        /// Reboots the system
12        sysreboot() unreachable
13    }
14}
15
16#[inline]
17pub fn shutdown() -> ! {
18    sysshutdown()
19}
20
21#[inline]
22pub fn reboot() -> ! {
23    sysreboot()
24}
25
26define_syscall! {
27    SyscallNum::SysUptime => {
28        /// returns the system uptime in milliseconds
29        sysuptime(uptime: RequiredPtrMut<u64>)
30    }
31}
32
33#[inline]
34pub fn uptime() -> u64 {
35    let mut results: u64 = 0;
36    let ptr = unsafe { RequiredPtrMut::new_unchecked(&raw mut results) };
37    sysuptime(ptr);
38    results
39}