use core::arch::asm;
#[inline]
pub(crate) unsafe fn syscall1(syscall_number: usize, arg1: usize) -> usize {
let mut ret: usize;
unsafe {
asm!(
"ecall",
in("a7") syscall_number,
inlateout("a0") arg1 => ret,
options(nostack, preserves_flags)
);
}
ret
}
#[inline]
pub(crate) unsafe fn syscall3(
syscall_number: usize,
arg1: usize,
arg2: usize,
arg3: usize,
) -> usize {
let mut ret: usize;
unsafe {
asm!(
"ecall",
in("a7") syscall_number,
inlateout("a0") arg1 => ret,
in("a1") arg2,
in("a2") arg3,
options(nostack, preserves_flags)
);
}
ret
}