1570af302Sopenharmony_ci#define __SYSCALL_LL_E(x) (x) 2570af302Sopenharmony_ci#define __SYSCALL_LL_O(x) (x) 3570af302Sopenharmony_ci 4570af302Sopenharmony_ci#define __scc(X) sizeof(1?(X):0ULL) < 8 ? (unsigned long) (X) : (long long) (X) 5570af302Sopenharmony_citypedef long long syscall_arg_t; 6570af302Sopenharmony_ci 7570af302Sopenharmony_cistatic __inline long __syscall0(long long n) 8570af302Sopenharmony_ci{ 9570af302Sopenharmony_ci unsigned long ret; 10570af302Sopenharmony_ci __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n) : "rcx", "r11", "memory"); 11570af302Sopenharmony_ci return ret; 12570af302Sopenharmony_ci} 13570af302Sopenharmony_ci 14570af302Sopenharmony_cistatic __inline long __syscall1(long long n, long long a1) 15570af302Sopenharmony_ci{ 16570af302Sopenharmony_ci unsigned long ret; 17570af302Sopenharmony_ci __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1) : "rcx", "r11", "memory"); 18570af302Sopenharmony_ci return ret; 19570af302Sopenharmony_ci} 20570af302Sopenharmony_ci 21570af302Sopenharmony_cistatic __inline long __syscall2(long long n, long long a1, long long a2) 22570af302Sopenharmony_ci{ 23570af302Sopenharmony_ci unsigned long ret; 24570af302Sopenharmony_ci __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2) 25570af302Sopenharmony_ci : "rcx", "r11", "memory"); 26570af302Sopenharmony_ci return ret; 27570af302Sopenharmony_ci} 28570af302Sopenharmony_ci 29570af302Sopenharmony_cistatic __inline long __syscall3(long long n, long long a1, long long a2, long long a3) 30570af302Sopenharmony_ci{ 31570af302Sopenharmony_ci unsigned long ret; 32570af302Sopenharmony_ci __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2), 33570af302Sopenharmony_ci "d"(a3) : "rcx", "r11", "memory"); 34570af302Sopenharmony_ci return ret; 35570af302Sopenharmony_ci} 36570af302Sopenharmony_ci 37570af302Sopenharmony_cistatic __inline long __syscall4(long long n, long long a1, long long a2, long long a3, 38570af302Sopenharmony_ci long long a4_) 39570af302Sopenharmony_ci{ 40570af302Sopenharmony_ci unsigned long ret; 41570af302Sopenharmony_ci register long long a4 __asm__("r10") = a4_; 42570af302Sopenharmony_ci __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2), 43570af302Sopenharmony_ci "d"(a3), "r"(a4): "rcx", "r11", "memory"); 44570af302Sopenharmony_ci return ret; 45570af302Sopenharmony_ci} 46570af302Sopenharmony_ci 47570af302Sopenharmony_cistatic __inline long __syscall5(long long n, long long a1, long long a2, long long a3, 48570af302Sopenharmony_ci long long a4_, long long a5_) 49570af302Sopenharmony_ci{ 50570af302Sopenharmony_ci unsigned long ret; 51570af302Sopenharmony_ci register long long a4 __asm__("r10") = a4_; 52570af302Sopenharmony_ci register long long a5 __asm__("r8") = a5_; 53570af302Sopenharmony_ci __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2), 54570af302Sopenharmony_ci "d"(a3), "r"(a4), "r"(a5) : "rcx", "r11", "memory"); 55570af302Sopenharmony_ci return ret; 56570af302Sopenharmony_ci} 57570af302Sopenharmony_ci 58570af302Sopenharmony_cistatic __inline long __syscall6(long long n, long long a1, long long a2, long long a3, 59570af302Sopenharmony_ci long long a4_, long long a5_, long long a6_) 60570af302Sopenharmony_ci{ 61570af302Sopenharmony_ci unsigned long ret; 62570af302Sopenharmony_ci register long long a4 __asm__("r10") = a4_; 63570af302Sopenharmony_ci register long long a5 __asm__("r8") = a5_; 64570af302Sopenharmony_ci register long long a6 __asm__("r9") = a6_; 65570af302Sopenharmony_ci __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2), 66570af302Sopenharmony_ci "d"(a3), "r"(a4), "r"(a5), "r"(a6) : "rcx", "r11", "memory"); 67570af302Sopenharmony_ci return ret; 68570af302Sopenharmony_ci} 69570af302Sopenharmony_ci 70570af302Sopenharmony_ci#undef SYS_futimesat 71570af302Sopenharmony_ci 72570af302Sopenharmony_ci#define SYS_clock_gettime64 SYS_clock_gettime 73570af302Sopenharmony_ci#define SYS_clock_settime64 SYS_clock_settime 74570af302Sopenharmony_ci#define SYS_clock_adjtime64 SYS_clock_adjtime 75570af302Sopenharmony_ci#define SYS_clock_nanosleep_time64 SYS_clock_nanosleep 76570af302Sopenharmony_ci#define SYS_timer_gettime64 SYS_timer_gettime 77570af302Sopenharmony_ci#define SYS_timer_settime64 SYS_timer_settime 78570af302Sopenharmony_ci#define SYS_timerfd_gettime64 SYS_timerfd_gettime 79570af302Sopenharmony_ci#define SYS_timerfd_settime64 SYS_timerfd_settime 80570af302Sopenharmony_ci#define SYS_utimensat_time64 SYS_utimensat 81570af302Sopenharmony_ci#define SYS_pselect6_time64 SYS_pselect6 82570af302Sopenharmony_ci#define SYS_ppoll_time64 SYS_ppoll 83570af302Sopenharmony_ci#define SYS_recvmmsg_time64 SYS_recvmmsg 84570af302Sopenharmony_ci#define SYS_mq_timedsend_time64 SYS_mq_timedsend 85570af302Sopenharmony_ci#define SYS_mq_timedreceive_time64 SYS_mq_timedreceive 86570af302Sopenharmony_ci#define SYS_semtimedop_time64 SYS_semtimedop 87570af302Sopenharmony_ci#define SYS_rt_sigtimedwait_time64 SYS_rt_sigtimedwait 88570af302Sopenharmony_ci#define SYS_futex_time64 SYS_futex 89570af302Sopenharmony_ci#define SYS_sched_rr_get_interval_time64 SYS_sched_rr_get_interval 90570af302Sopenharmony_ci#define SYS_getrusage_time64 SYS_getrusage 91570af302Sopenharmony_ci#define SYS_wait4_time64 SYS_wait4 92570af302Sopenharmony_ci 93570af302Sopenharmony_ci#define IPC_64 0 94