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 long (__syscall)(long, ...);
10 static __inline long __syscall0(long n)
12 register unsigned long r12 __asm__("r12") = n;
13 register unsigned long r3 __asm__("r3");
14 __asm__ __volatile__ ("brki r14, 0x8" : "=r"(r3)
20 static inline long __syscall1(long n, long a)
22 register unsigned long r12 __asm__("r12") = n;
23 register unsigned long r3 __asm__("r3");
24 register unsigned long r5 __asm__("r5") = a;
25 __asm__ __volatile__ ("brki r14, 0x8" : "=r"(r3)
31 static inline long __syscall2(long n, long a, long b)
33 register unsigned long r12 __asm__("r12") = n;
34 register unsigned long r3 __asm__("r3");
35 register unsigned long r5 __asm__("r5") = a;
36 register unsigned long r6 __asm__("r6") = b;
37 __asm__ __volatile__ ("brki r14, 0x8" : "=r"(r3)
38 : "r"(r12), "r"(r5), "r"(r6)
43 static inline long __syscall3(long n, long a, long b, long c)
45 register unsigned long r12 __asm__("r12") = n;
46 register unsigned long r3 __asm__("r3");
47 register unsigned long r5 __asm__("r5") = a;
48 register unsigned long r6 __asm__("r6") = b;
49 register unsigned long r7 __asm__("r7") = c;
50 __asm__ __volatile__ ("brki r14, 0x8" : "=r"(r3)
51 : "r"(r12), "r"(r5), "r"(r6), "r"(r7)
56 static inline long __syscall4(long n, long a, long b, long c, long d)
58 register unsigned long r12 __asm__("r12") = n;
59 register unsigned long r3 __asm__("r3");
60 register unsigned long r5 __asm__("r5") = a;
61 register unsigned long r6 __asm__("r6") = b;
62 register unsigned long r7 __asm__("r7") = c;
63 register unsigned long r8 __asm__("r8") = d;
64 __asm__ __volatile__ ("brki r14, 0x8" : "=r"(r3)
65 : "r"(r12), "r"(r5), "r"(r6), "r"(r7), "r"(r8)
70 static inline long __syscall5(long n, long a, long b, long c, long d, long e)
72 register unsigned long r12 __asm__("r12") = n;
73 register unsigned long r3 __asm__("r3");
74 register unsigned long r5 __asm__("r5") = a;
75 register unsigned long r6 __asm__("r6") = b;
76 register unsigned long r7 __asm__("r7") = c;
77 register unsigned long r8 __asm__("r8") = d;
78 register unsigned long r9 __asm__("r9") = e;
79 __asm__ __volatile__ ("brki r14, 0x8" : "=r"(r3)
80 : "r"(r12), "r"(r5), "r"(r6), "r"(r7), "r"(r8), "r"(r9)
85 static inline long __syscall6(long n, long a, long b, long c, long d, long e, long f)
87 register unsigned long r12 __asm__("r12") = n;
88 register unsigned long r3 __asm__("r3");
89 register unsigned long r5 __asm__("r5") = a;
90 register unsigned long r6 __asm__("r6") = b;
91 register unsigned long r7 __asm__("r7") = c;
92 register unsigned long r8 __asm__("r8") = d;
93 register unsigned long r9 __asm__("r9") = e;
94 register unsigned long r10 __asm__("r10") = f;
95 __asm__ __volatile__ ("brki r14, 0x8" : "=r"(r3)
96 : "r"(r12), "r"(r5), "r"(r6), "r"(r7), "r"(r8), "r"(r9), "r"(r10)
103 static inline long __syscall0(long n)
105 return (__syscall)(n);
108 static inline long __syscall1(long n, long a)
110 return (__syscall)(n, a);
113 static inline long __syscall2(long n, long a, long b)
115 return (__syscall)(n, a, b);
118 static inline long __syscall3(long n, long a, long b, long c)
120 return (__syscall)(n, a, b, c);
123 static inline long __syscall4(long n, long a, long b, long c, long d)
125 return (__syscall)(n, a, b, c, d);
128 static inline long __syscall5(long n, long a, long b, long c, long d, long e)
130 return (__syscall)(n, a, b, c, d, e);
133 static inline long __syscall6(long n, long a, long b, long c, long d, long e, long f)
135 return (__syscall)(n, a, b, c, d, e, f);