OLD | NEW |
| (Empty) |
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)) | |
5 | |
6 #ifndef __clang__ | |
7 | |
8 static __inline long __syscall0(long n) | |
9 { | |
10 register unsigned long r12 __asm__("r12") = n; | |
11 register unsigned long r3 __asm__("r3"); | |
12 __asm__ __volatile__ ("brki r14, 0x8" : "=r"(r3) | |
13 : "r"(r12) | |
14 : "memory", "r4"); | |
15 return r3; | |
16 } | |
17 | |
18 static inline long __syscall1(long n, long a) | |
19 { | |
20 register unsigned long r12 __asm__("r12") = n; | |
21 register unsigned long r3 __asm__("r3"); | |
22 register unsigned long r5 __asm__("r5") = a; | |
23 __asm__ __volatile__ ("brki r14, 0x8" : "=r"(r3) | |
24 : "r"(r12), "r"(r5) | |
25 : "memory", "r4"); | |
26 return r3; | |
27 } | |
28 | |
29 static inline long __syscall2(long n, long a, long b) | |
30 { | |
31 register unsigned long r12 __asm__("r12") = n; | |
32 register unsigned long r3 __asm__("r3"); | |
33 register unsigned long r5 __asm__("r5") = a; | |
34 register unsigned long r6 __asm__("r6") = b; | |
35 __asm__ __volatile__ ("brki r14, 0x8" : "=r"(r3) | |
36 : "r"(r12), "r"(r5), "r"(r6) | |
37 : "memory", "r4"); | |
38 return r3; | |
39 } | |
40 | |
41 static inline long __syscall3(long n, long a, long b, long c) | |
42 { | |
43 register unsigned long r12 __asm__("r12") = n; | |
44 register unsigned long r3 __asm__("r3"); | |
45 register unsigned long r5 __asm__("r5") = a; | |
46 register unsigned long r6 __asm__("r6") = b; | |
47 register unsigned long r7 __asm__("r7") = c; | |
48 __asm__ __volatile__ ("brki r14, 0x8" : "=r"(r3) | |
49 : "r"(r12), "r"(r5), "r"(r6), "r"(r7) | |
50 : "memory", "r4"); | |
51 return r3; | |
52 } | |
53 | |
54 static inline long __syscall4(long n, long a, long b, long c, long d) | |
55 { | |
56 register unsigned long r12 __asm__("r12") = n; | |
57 register unsigned long r3 __asm__("r3"); | |
58 register unsigned long r5 __asm__("r5") = a; | |
59 register unsigned long r6 __asm__("r6") = b; | |
60 register unsigned long r7 __asm__("r7") = c; | |
61 register unsigned long r8 __asm__("r8") = d; | |
62 __asm__ __volatile__ ("brki r14, 0x8" : "=r"(r3) | |
63 : "r"(r12), "r"(r5), "r"(r6), "r"(r7), "r"(r8) | |
64 : "memory", "r4"); | |
65 return r3; | |
66 } | |
67 | |
68 static inline long __syscall5(long n, long a, long b, long c, long d, long e) | |
69 { | |
70 register unsigned long r12 __asm__("r12") = n; | |
71 register unsigned long r3 __asm__("r3"); | |
72 register unsigned long r5 __asm__("r5") = a; | |
73 register unsigned long r6 __asm__("r6") = b; | |
74 register unsigned long r7 __asm__("r7") = c; | |
75 register unsigned long r8 __asm__("r8") = d; | |
76 register unsigned long r9 __asm__("r9") = e; | |
77 __asm__ __volatile__ ("brki r14, 0x8" : "=r"(r3) | |
78 : "r"(r12), "r"(r5), "r"(r6), "r"(r7), "r"(r8), "r"(r9) | |
79 : "memory", "r4"); | |
80 return r3; | |
81 } | |
82 | |
83 static inline long __syscall6(long n, long a, long b, long c, long d, long e, lo
ng f) | |
84 { | |
85 register unsigned long r12 __asm__("r12") = n; | |
86 register unsigned long r3 __asm__("r3"); | |
87 register unsigned long r5 __asm__("r5") = a; | |
88 register unsigned long r6 __asm__("r6") = b; | |
89 register unsigned long r7 __asm__("r7") = c; | |
90 register unsigned long r8 __asm__("r8") = d; | |
91 register unsigned long r9 __asm__("r9") = e; | |
92 register unsigned long r10 __asm__("r10") = f; | |
93 __asm__ __volatile__ ("brki r14, 0x8" : "=r"(r3) | |
94 : "r"(r12), "r"(r5), "r"(r6), "r"(r7), "r"(r8), "r"(r9), "r"(r10
) | |
95 : "memory", "r4"); | |
96 return r3; | |
97 } | |
98 | |
99 #else | |
100 | |
101 #undef SYSCALL_NO_INLINE | |
102 #define SYSCALL_NO_INLINE | |
103 | |
104 #endif | |
OLD | NEW |