1 #define __SYSCALL_LL_E(x) \
2 ((union { long long ll; long l[2]; }){ .ll = x }).l[0], \
3 ((union { long long ll; long l[2]; }){ .ll = x }).l[1]
4 #define __SYSCALL_LL_O(x) 0, __SYSCALL_LL_E((x))
6 #define SYSCALL_MMAP2_UNIT 8192ULL
8 long (__syscall)(long, ...);
12 static __inline long __syscall0(long n)
14 register unsigned long r11 __asm__("r11") = n;
15 __asm__ __volatile__ ("l.sys 1"
18 : "memory", "r3", "r4", "r5", "r6", "r7", "r8",
19 "r12", "r13", "r15", "r17", "r19", "r21",
20 "r23", "r25", "r27", "r29", "r31");
24 static inline long __syscall1(long n, long a)
26 register unsigned long r11 __asm__("r11") = n;
27 register unsigned long r3 __asm__("r3") = a;
28 __asm__ __volatile__ ("l.sys 1"
31 : "memory", "r4", "r5", "r6", "r7", "r8",
32 "r12", "r13", "r15", "r17", "r19", "r21",
33 "r23", "r25", "r27", "r29", "r31");
37 static inline long __syscall2(long n, long a, long b)
39 register unsigned long r11 __asm__("r11") = n;
40 register unsigned long r3 __asm__("r3") = a;
41 register unsigned long r4 __asm__("r4") = b;
42 __asm__ __volatile__ ("l.sys 1"
44 : "r"(r11), "r"(r3), "r"(r4)
45 : "memory", "r5", "r6", "r7", "r8",
46 "r12", "r13", "r15", "r17", "r19", "r21",
47 "r23", "r25", "r27", "r29", "r31");
51 static inline long __syscall3(long n, long a, long b, long c)
53 register unsigned long r11 __asm__("r11") = n;
54 register unsigned long r3 __asm__("r3") = a;
55 register unsigned long r4 __asm__("r4") = b;
56 register unsigned long r5 __asm__("r5") = c;
57 __asm__ __volatile__ ("l.sys 1"
59 : "r"(r11), "r"(r3), "r"(r4), "r"(r5)
60 : "memory", "r6", "r7", "r8",
61 "r12", "r13", "r15", "r17", "r19", "r21",
62 "r23", "r25", "r27", "r29", "r31");
66 static inline long __syscall4(long n, long a, long b, long c, long d)
68 register unsigned long r11 __asm__("r11") = n;
69 register unsigned long r3 __asm__("r3") = a;
70 register unsigned long r4 __asm__("r4") = b;
71 register unsigned long r5 __asm__("r5") = c;
72 register unsigned long r6 __asm__("r6") = d;
73 __asm__ __volatile__ ("l.sys 1"
75 : "r"(r11), "r"(r3), "r"(r4), "r"(r5), "r"(r6)
76 : "memory", "r7", "r8",
77 "r12", "r13", "r15", "r17", "r19", "r21",
78 "r23", "r25", "r27", "r29", "r31");
82 static inline long __syscall5(long n, long a, long b, long c, long d, long e)
84 register unsigned long r11 __asm__("r11") = n;
85 register unsigned long r3 __asm__("r3") = a;
86 register unsigned long r4 __asm__("r4") = b;
87 register unsigned long r5 __asm__("r5") = c;
88 register unsigned long r6 __asm__("r6") = d;
89 register unsigned long r7 __asm__("r7") = e;
90 __asm__ __volatile__ ("l.sys 1"
92 : "r"(r11), "r"(r3), "r"(r4), "r"(r5), "r"(r6),
95 "r12", "r13", "r15", "r17", "r19", "r21",
96 "r23", "r25", "r27", "r29", "r31");
100 static inline long __syscall6(long n, long a, long b, long c, long d, long e, long f)
102 register unsigned long r11 __asm__("r11") = n;
103 register unsigned long r3 __asm__("r3") = a;
104 register unsigned long r4 __asm__("r4") = b;
105 register unsigned long r5 __asm__("r5") = c;
106 register unsigned long r6 __asm__("r6") = d;
107 register unsigned long r7 __asm__("r7") = e;
108 register unsigned long r8 __asm__("r8") = f;
109 __asm__ __volatile__ ("l.sys 1"
111 : "r"(r11), "r"(r3), "r"(r4), "r"(r5), "r"(r6),
114 "r12", "r13", "r15", "r17", "r19", "r21",
115 "r23", "r25", "r27", "r29", "r31");
121 static inline long __syscall0(long n)
123 return (__syscall)(n);
126 static inline long __syscall1(long n, long a)
128 return (__syscall)(n, a);
131 static inline long __syscall2(long n, long a, long b)
133 return (__syscall)(n, a, b);
136 static inline long __syscall3(long n, long a, long b, long c)
138 return (__syscall)(n, a, b, c);
141 static inline long __syscall4(long n, long a, long b, long c, long d)
143 return (__syscall)(n, a, b, c, d);
146 static inline long __syscall5(long n, long a, long b, long c, long d, long e)
148 return (__syscall)(n, a, b, c, d, e);
151 static inline long __syscall6(long n, long a, long b, long c, long d, long e, long f)
153 return (__syscall)(n, a, b, c, d, e, f);