70 lines
1.1 KiB
C
70 lines
1.1 KiB
C
/* archdep_c.c COPYRIGHT FUJITSU LIMITED 2019 */
|
|
|
|
long uti_syscall6(long syscall_number,
|
|
long arg0, long arg1, long arg2,
|
|
long arg3, long arg4, long arg5)
|
|
{
|
|
long ret;
|
|
|
|
asm volatile(
|
|
"mov x8, %1;"
|
|
"mov x0, %2;"
|
|
"mov x1, %3;"
|
|
"mov x2, %4;"
|
|
"mov x3, %5;"
|
|
"mov x4, %6;"
|
|
"mov x5, %7;"
|
|
"svc #0x0;"
|
|
"mov %0, x0;"
|
|
: "=r" (ret)
|
|
: "r" (syscall_number),
|
|
"r" (arg0), "r" (arg1), "r" (arg2),
|
|
"r" (arg3), "r" (arg4), "r" (arg5));
|
|
return ret;
|
|
}
|
|
|
|
long uti_syscall3(long syscall_number, long arg0, long arg1, long arg2)
|
|
{
|
|
long ret;
|
|
|
|
asm volatile(
|
|
"mov x8, %1;"
|
|
"mov x0, %2;"
|
|
"mov x1, %3;"
|
|
"mov x2, %4;"
|
|
"svc #0x0;"
|
|
"mov %0, x0;"
|
|
: "=r" (ret)
|
|
: "r" (syscall_number),
|
|
"r" (arg0), "r" (arg1), "r" (arg2));
|
|
return ret;
|
|
}
|
|
|
|
long uti_syscall1(long syscall_number, long arg0)
|
|
{
|
|
long ret;
|
|
|
|
asm volatile(
|
|
"mov x8, %1;"
|
|
"mov x0, %2;"
|
|
"svc #0x0;"
|
|
"mov %0, x0;"
|
|
: "=r" (ret)
|
|
: "r" (syscall_number),
|
|
"r" (arg0));
|
|
return ret;
|
|
}
|
|
|
|
long uti_syscall0(long syscall_number)
|
|
{
|
|
long ret;
|
|
|
|
asm volatile(
|
|
"mov x8, %1;"
|
|
"svc #0x0;"
|
|
"mov %0, x0;"
|
|
: "=r" (ret)
|
|
: "r" (syscall_number));
|
|
return ret;
|
|
}
|