os/
sbi.rs

1/// use sbi call to putchar in console (qemu uart handler)
2pub fn console_putchar(c: usize) {
3    #[allow(deprecated)]
4    sbi_rt::legacy::console_putchar(c);
5}
6
7/// use sbi call to getchar from console (qemu uart handler)
8pub fn console_getchar() -> usize {
9    #[allow(deprecated)]
10    sbi_rt::legacy::console_getchar()
11}
12
13/// use sbi call to set timer
14pub fn set_timer(timer: usize) {
15    sbi_rt::set_timer(timer as _);
16}
17
18/// use sbi call to shutdown the kernel
19pub fn shutdown(failure: bool) -> ! {
20    use sbi_rt::{NoReason, Shutdown, SystemFailure, system_reset};
21    if !failure {
22        system_reset(Shutdown, NoReason);
23    } else {
24        system_reset(Shutdown, SystemFailure);
25    }
26    unreachable!()
27}