impl SYS
{
#[inline(always)]
pub unsafe fn raw_syscall0(self) -> usize
{
let x8 = self as usize;
let x0: usize;
asm!
(
"svc $$0"
:
"={x0}"(x0)
:
"{x8}"(x8)
:
"cc",
"memory"
:
"volatile"
);
x0
}
#[inline(always)]
pub unsafe fn raw_syscall1(self, a: usize) -> usize
{
let x8 = self as usize;
let mut x0 = a;
asm!
(
"svc $$0"
:
"+{x0}"(x0)
:
"{x8}"(x8)
:
"cc",
"memory"
:
"volatile"
);
x0
}
#[inline(always)]
pub unsafe fn raw_syscall2(self, mut a: usize, mut b: usize) -> usize
{
let x8 = self as usize;
let mut x0 = a;
asm!
(
"svc $$0"
:
"+{x0}"(x0)
:
"{x8}"(x8),
"{x1}"(b)
:
"cc",
"memory"
:
"volatile"
);
x0
}
#[inline(always)]
pub unsafe fn raw_syscall3(self, mut a: usize, b: usize, c: usize) -> usize
{
let x8 = self as usize;
let mut x0 = a;
asm!
(
"svc $$0"
:
"+{x0}"(x0)
:
"{x8}"(x8),
"{x1}"(b),
"{x2}"(c)
:
"cc",
"memory"
:
"volatile"
);
x0
}
#[inline(always)]
pub unsafe fn raw_syscall4(self, a: usize, b: usize, c: usize, d: usize) -> usize
{
let x8 = self as usize;
let mut x0 = a;
asm!
(
"svc $$0"
:
"+{x0}"(x0)
:
"{x8}"(x8),
"{x1}"(b),
"{x2}"(c)
"{x3}"(d)
:
"cc",
"memory"
:
"volatile"
);
x0
}
#[inline(always)]
pub unsafe fn raw_syscall5(self, a: usize, b: usize, c: usize, d: usize, e: usize) -> usize
{
let x8 = self as usize;
let mut x0 = a;
asm!
(
"svc $$0"
:
"+{x0}"(x0)
:
"{x8}"(x8),
"{x1}"(b),
"{x2}"(c)
"{x3}"(d)
"{x4}"(e)
:
"cc",
"memory"
:
"volatile"
);
x0
}
#[inline(always)]
pub unsafe fn raw_syscall6(self, a: usize, b: usize, c: usize, d: usize, e: usize, f: usize) -> usize
{
let x8 = self as usize;
let mut x0 = a;
asm!
(
"svc $$0"
:
"+{x0}"(x0)
:
"{x8}"(x8),
"{x1}"(b),
"{x2}"(c)
"{x3}"(d)
"{x4}"(e)
"{x5}"(f)
:
"cc",
"memory"
:
"volatile"
);
x0
}
}