use core::ptr;
use super::abi::*;
use crate::{
result_from_value,
Error,
};
const LINUX_REBOOT_MAGIC1: u32 = 0xfee1dead;
const LINUX_REBOOT_MAGIC2: u32 = 672274793;
pub const RB_POWER_OFF: u32 = 0x4321FEDC;
#[inline]
#[allow(clippy::missing_safety_doc)]
pub unsafe fn reboot(cmd: u32, arg: *mut u8) -> crate::Result<i32> {
let ret = syscall_4(
169,
LINUX_REBOOT_MAGIC1 as usize,
LINUX_REBOOT_MAGIC2 as usize,
cmd as usize,
arg as usize,
) as i32;
result_from_value(ret)
}
#[inline]
pub fn reboot_power_off() -> Error {
match unsafe { reboot(RB_POWER_OFF, ptr::null_mut()) } {
Ok(ret) => unreachable!("reboot() returned {ret}"),
Err(err) => err,
}
}