include!("SYS.constants.rs");
#[cfg(target_arch = "aarch64")] include!("SYS.raw_syscall.aarch64.rs");
#[cfg(target_arch = "x86_64")] include!("SYS.raw_syscall.x86_64.rs");
impl SYS
{
#[cfg(not(target_arch = "powerpc64"))]
#[inline(always)]
pub fn syscall0(self) -> isize
{
Self::raw_syscall_result_to_syscall_result(unsafe { self.raw_syscall0() })
}
#[cfg(not(target_arch = "powerpc64"))]
#[inline(always)]
pub fn syscall1(self, a: usize) -> isize
{
Self::raw_syscall_result_to_syscall_result(unsafe { self.raw_syscall1(a) })
}
#[cfg(not(target_arch = "powerpc64"))]
#[inline(always)]
pub fn syscall2(self, a: usize, b: usize) -> isize
{
Self::raw_syscall_result_to_syscall_result(unsafe { self.raw_syscall2(a, b) })
}
#[cfg(not(target_arch = "powerpc64"))]
#[inline(always)]
pub fn syscall3(self, a: usize, b: usize, c: usize) -> isize
{
Self::raw_syscall_result_to_syscall_result(unsafe { self.raw_syscall3(a, b, c) })
}
#[cfg(not(target_arch = "powerpc64"))]
#[inline(always)]
pub fn syscall4(self, a: usize, b: usize, c: usize, d: usize) -> isize
{
Self::raw_syscall_result_to_syscall_result(unsafe { self.raw_syscall4(a, b, c, d) })
}
#[inline(always)]
pub fn syscall5(self, a: usize, b: usize, c: usize, d: usize, e: usize) -> isize
{
Self::raw_syscall_result_to_syscall_result(unsafe { self.raw_syscall5(a, b, c, d, e) })
}
#[cfg(not(target_arch = "s390x"))]
#[inline(always)]
pub fn syscall6(self, a: usize, b: usize, c: usize, d: usize, e: usize, f: usize) -> isize
{
Self::raw_syscall_result_to_syscall_result(unsafe { self.raw_syscall6(a, b, c, d, e, f) })
}
#[inline(always)]
fn raw_syscall_result_to_syscall_result(result: usize) -> isize
{
let result_is_error_code = result > -4096isize as usize;
if unlikely!(result_is_error_code)
{
set_errno(Errno(result as isize as i32));
-1
}
else
{
result as isize
}
}
}