syscall.c (624B)
1 /* 2 * syscall.c - raw system call interface 3 * Copyright (C) 2026. All rights reserved. 4 */ 5 6 #include "libc.h" 7 8 static inline long call(long num, long a1, long a2, long a3, long a4, long a5, 9 long a6) { 10 long ret; 11 register long r10 asm("r10") = a4; 12 register long r8 asm("r8") = a5; 13 register long r9 asm("r9") = a6; 14 15 asm volatile("syscall" 16 : "=a"(ret) 17 : "a"(num), "D"(a1), "S"(a2), "d"(a3), "r"(r10), "r"(r8), "r"(r9) 18 : "rcx", "r11", "cc", "memory"); 19 20 return ret; 21 } 22 23 long syscall(long num, long a1, long a2, long a3, long a4, long a5, long a6) { 24 return call(num, a1, a2, a3, a4, a5, a6); 25 }