1570af302Sopenharmony_ci#define __SYSCALL_LL_E(x) \ 2570af302Sopenharmony_ci((union { long long ll; long l[2]; }){ .ll = x }).l[0], \ 3570af302Sopenharmony_ci((union { long long ll; long l[2]; }){ .ll = x }).l[1] 4570af302Sopenharmony_ci#define __SYSCALL_LL_O(x) __SYSCALL_LL_E((x)) 5570af302Sopenharmony_ci 6570af302Sopenharmony_ci#define SYSCALL_MMAP2_UNIT 8192ULL 7570af302Sopenharmony_ci 8570af302Sopenharmony_cistatic __inline long __syscall0(long n) 9570af302Sopenharmony_ci{ 10570af302Sopenharmony_ci register unsigned long r11 __asm__("r11") = n; 11570af302Sopenharmony_ci __asm__ __volatile__ ("l.sys 1" 12570af302Sopenharmony_ci : "=r"(r11) 13570af302Sopenharmony_ci : "r"(r11) 14570af302Sopenharmony_ci : "memory", "r3", "r4", "r5", "r6", "r7", "r8", 15570af302Sopenharmony_ci "r12", "r13", "r15", "r17", "r19", "r21", 16570af302Sopenharmony_ci "r23", "r25", "r27", "r29", "r31"); 17570af302Sopenharmony_ci return r11; 18570af302Sopenharmony_ci} 19570af302Sopenharmony_ci 20570af302Sopenharmony_cistatic inline long __syscall1(long n, long a) 21570af302Sopenharmony_ci{ 22570af302Sopenharmony_ci register unsigned long r11 __asm__("r11") = n; 23570af302Sopenharmony_ci register unsigned long r3 __asm__("r3") = a; 24570af302Sopenharmony_ci __asm__ __volatile__ ("l.sys 1" 25570af302Sopenharmony_ci : "=r"(r11) 26570af302Sopenharmony_ci : "r"(r11), "r"(r3) 27570af302Sopenharmony_ci : "memory", "r4", "r5", "r6", "r7", "r8", 28570af302Sopenharmony_ci "r12", "r13", "r15", "r17", "r19", "r21", 29570af302Sopenharmony_ci "r23", "r25", "r27", "r29", "r31"); 30570af302Sopenharmony_ci return r11; 31570af302Sopenharmony_ci} 32570af302Sopenharmony_ci 33570af302Sopenharmony_cistatic inline long __syscall2(long n, long a, long b) 34570af302Sopenharmony_ci{ 35570af302Sopenharmony_ci register unsigned long r11 __asm__("r11") = n; 36570af302Sopenharmony_ci register unsigned long r3 __asm__("r3") = a; 37570af302Sopenharmony_ci register unsigned long r4 __asm__("r4") = b; 38570af302Sopenharmony_ci __asm__ __volatile__ ("l.sys 1" 39570af302Sopenharmony_ci : "=r"(r11) 40570af302Sopenharmony_ci : "r"(r11), "r"(r3), "r"(r4) 41570af302Sopenharmony_ci : "memory", "r5", "r6", "r7", "r8", 42570af302Sopenharmony_ci "r12", "r13", "r15", "r17", "r19", "r21", 43570af302Sopenharmony_ci "r23", "r25", "r27", "r29", "r31"); 44570af302Sopenharmony_ci return r11; 45570af302Sopenharmony_ci} 46570af302Sopenharmony_ci 47570af302Sopenharmony_cistatic inline long __syscall3(long n, long a, long b, long c) 48570af302Sopenharmony_ci{ 49570af302Sopenharmony_ci register unsigned long r11 __asm__("r11") = n; 50570af302Sopenharmony_ci register unsigned long r3 __asm__("r3") = a; 51570af302Sopenharmony_ci register unsigned long r4 __asm__("r4") = b; 52570af302Sopenharmony_ci register unsigned long r5 __asm__("r5") = c; 53570af302Sopenharmony_ci __asm__ __volatile__ ("l.sys 1" 54570af302Sopenharmony_ci : "=r"(r11) 55570af302Sopenharmony_ci : "r"(r11), "r"(r3), "r"(r4), "r"(r5) 56570af302Sopenharmony_ci : "memory", "r6", "r7", "r8", 57570af302Sopenharmony_ci "r12", "r13", "r15", "r17", "r19", "r21", 58570af302Sopenharmony_ci "r23", "r25", "r27", "r29", "r31"); 59570af302Sopenharmony_ci return r11; 60570af302Sopenharmony_ci} 61570af302Sopenharmony_ci 62570af302Sopenharmony_cistatic inline long __syscall4(long n, long a, long b, long c, long d) 63570af302Sopenharmony_ci{ 64570af302Sopenharmony_ci register unsigned long r11 __asm__("r11") = n; 65570af302Sopenharmony_ci register unsigned long r3 __asm__("r3") = a; 66570af302Sopenharmony_ci register unsigned long r4 __asm__("r4") = b; 67570af302Sopenharmony_ci register unsigned long r5 __asm__("r5") = c; 68570af302Sopenharmony_ci register unsigned long r6 __asm__("r6") = d; 69570af302Sopenharmony_ci __asm__ __volatile__ ("l.sys 1" 70570af302Sopenharmony_ci : "=r"(r11) 71570af302Sopenharmony_ci : "r"(r11), "r"(r3), "r"(r4), "r"(r5), "r"(r6) 72570af302Sopenharmony_ci : "memory", "r7", "r8", 73570af302Sopenharmony_ci "r12", "r13", "r15", "r17", "r19", "r21", 74570af302Sopenharmony_ci "r23", "r25", "r27", "r29", "r31"); 75570af302Sopenharmony_ci return r11; 76570af302Sopenharmony_ci} 77570af302Sopenharmony_ci 78570af302Sopenharmony_cistatic inline long __syscall5(long n, long a, long b, long c, long d, long e) 79570af302Sopenharmony_ci{ 80570af302Sopenharmony_ci register unsigned long r11 __asm__("r11") = n; 81570af302Sopenharmony_ci register unsigned long r3 __asm__("r3") = a; 82570af302Sopenharmony_ci register unsigned long r4 __asm__("r4") = b; 83570af302Sopenharmony_ci register unsigned long r5 __asm__("r5") = c; 84570af302Sopenharmony_ci register unsigned long r6 __asm__("r6") = d; 85570af302Sopenharmony_ci register unsigned long r7 __asm__("r7") = e; 86570af302Sopenharmony_ci __asm__ __volatile__ ("l.sys 1" 87570af302Sopenharmony_ci : "=r"(r11) 88570af302Sopenharmony_ci : "r"(r11), "r"(r3), "r"(r4), "r"(r5), "r"(r6), 89570af302Sopenharmony_ci "r"(r7) 90570af302Sopenharmony_ci : "memory", "r8", 91570af302Sopenharmony_ci "r12", "r13", "r15", "r17", "r19", "r21", 92570af302Sopenharmony_ci "r23", "r25", "r27", "r29", "r31"); 93570af302Sopenharmony_ci return r11; 94570af302Sopenharmony_ci} 95570af302Sopenharmony_ci 96570af302Sopenharmony_cistatic inline long __syscall6(long n, long a, long b, long c, long d, long e, long f) 97570af302Sopenharmony_ci{ 98570af302Sopenharmony_ci register unsigned long r11 __asm__("r11") = n; 99570af302Sopenharmony_ci register unsigned long r3 __asm__("r3") = a; 100570af302Sopenharmony_ci register unsigned long r4 __asm__("r4") = b; 101570af302Sopenharmony_ci register unsigned long r5 __asm__("r5") = c; 102570af302Sopenharmony_ci register unsigned long r6 __asm__("r6") = d; 103570af302Sopenharmony_ci register unsigned long r7 __asm__("r7") = e; 104570af302Sopenharmony_ci register unsigned long r8 __asm__("r8") = f; 105570af302Sopenharmony_ci __asm__ __volatile__ ("l.sys 1" 106570af302Sopenharmony_ci : "=r"(r11) 107570af302Sopenharmony_ci : "r"(r11), "r"(r3), "r"(r4), "r"(r5), "r"(r6), 108570af302Sopenharmony_ci "r"(r7), "r"(r8) 109570af302Sopenharmony_ci : "memory", 110570af302Sopenharmony_ci "r12", "r13", "r15", "r17", "r19", "r21", 111570af302Sopenharmony_ci "r23", "r25", "r27", "r29", "r31"); 112570af302Sopenharmony_ci return r11; 113570af302Sopenharmony_ci} 114570af302Sopenharmony_ci 115570af302Sopenharmony_ci#define IPC_64 0 116