1*c9945492SAndroid Build Coastguard Worker #define __SYSCALL_LL_E(x) (x)
2*c9945492SAndroid Build Coastguard Worker #define __SYSCALL_LL_O(x) (x)
3*c9945492SAndroid Build Coastguard Worker
4*c9945492SAndroid Build Coastguard Worker #define SYSCALL_RLIM_INFINITY (-1UL/2)
5*c9945492SAndroid Build Coastguard Worker
6*c9945492SAndroid Build Coastguard Worker #if __mips_isa_rev >= 6
7*c9945492SAndroid Build Coastguard Worker #define SYSCALL_CLOBBERLIST \
8*c9945492SAndroid Build Coastguard Worker "$1", "$3", "$10", "$11", "$12", "$13", \
9*c9945492SAndroid Build Coastguard Worker "$14", "$15", "$24", "$25", "memory"
10*c9945492SAndroid Build Coastguard Worker #else
11*c9945492SAndroid Build Coastguard Worker #define SYSCALL_CLOBBERLIST \
12*c9945492SAndroid Build Coastguard Worker "$1", "$3", "$10", "$11", "$12", "$13", \
13*c9945492SAndroid Build Coastguard Worker "$14", "$15", "$24", "$25", "hi", "lo", "memory"
14*c9945492SAndroid Build Coastguard Worker #endif
15*c9945492SAndroid Build Coastguard Worker
__syscall0(long n)16*c9945492SAndroid Build Coastguard Worker static inline long __syscall0(long n)
17*c9945492SAndroid Build Coastguard Worker {
18*c9945492SAndroid Build Coastguard Worker register long r7 __asm__("$7");
19*c9945492SAndroid Build Coastguard Worker register long r2 __asm__("$2");
20*c9945492SAndroid Build Coastguard Worker __asm__ __volatile__ (
21*c9945492SAndroid Build Coastguard Worker "daddu $2,$0,%2 ; syscall"
22*c9945492SAndroid Build Coastguard Worker : "=&r"(r2), "=r"(r7)
23*c9945492SAndroid Build Coastguard Worker : "ir"(n), "0"(r2)
24*c9945492SAndroid Build Coastguard Worker : SYSCALL_CLOBBERLIST);
25*c9945492SAndroid Build Coastguard Worker return r7 && r2>0 ? -r2 : r2;
26*c9945492SAndroid Build Coastguard Worker }
27*c9945492SAndroid Build Coastguard Worker
__syscall1(long n,long a)28*c9945492SAndroid Build Coastguard Worker static inline long __syscall1(long n, long a)
29*c9945492SAndroid Build Coastguard Worker {
30*c9945492SAndroid Build Coastguard Worker register long r4 __asm__("$4") = a;
31*c9945492SAndroid Build Coastguard Worker register long r7 __asm__("$7");
32*c9945492SAndroid Build Coastguard Worker register long r2 __asm__("$2");
33*c9945492SAndroid Build Coastguard Worker __asm__ __volatile__ (
34*c9945492SAndroid Build Coastguard Worker "daddu $2,$0,%2 ; syscall"
35*c9945492SAndroid Build Coastguard Worker : "=&r"(r2), "=r"(r7)
36*c9945492SAndroid Build Coastguard Worker : "ir"(n), "0"(r2), "r"(r4)
37*c9945492SAndroid Build Coastguard Worker : SYSCALL_CLOBBERLIST);
38*c9945492SAndroid Build Coastguard Worker return r7 && r2>0 ? -r2 : r2;
39*c9945492SAndroid Build Coastguard Worker }
40*c9945492SAndroid Build Coastguard Worker
__syscall2(long n,long a,long b)41*c9945492SAndroid Build Coastguard Worker static inline long __syscall2(long n, long a, long b)
42*c9945492SAndroid Build Coastguard Worker {
43*c9945492SAndroid Build Coastguard Worker register long r4 __asm__("$4") = a;
44*c9945492SAndroid Build Coastguard Worker register long r5 __asm__("$5") = b;
45*c9945492SAndroid Build Coastguard Worker register long r7 __asm__("$7");
46*c9945492SAndroid Build Coastguard Worker register long r2 __asm__("$2");
47*c9945492SAndroid Build Coastguard Worker
48*c9945492SAndroid Build Coastguard Worker __asm__ __volatile__ (
49*c9945492SAndroid Build Coastguard Worker "daddu $2,$0,%2 ; syscall"
50*c9945492SAndroid Build Coastguard Worker : "=&r"(r2), "=r"(r7)
51*c9945492SAndroid Build Coastguard Worker : "ir"(n), "0"(r2), "r"(r4), "r"(r5)
52*c9945492SAndroid Build Coastguard Worker : SYSCALL_CLOBBERLIST);
53*c9945492SAndroid Build Coastguard Worker return r7 && r2>0 ? -r2 : r2;
54*c9945492SAndroid Build Coastguard Worker }
55*c9945492SAndroid Build Coastguard Worker
__syscall3(long n,long a,long b,long c)56*c9945492SAndroid Build Coastguard Worker static inline long __syscall3(long n, long a, long b, long c)
57*c9945492SAndroid Build Coastguard Worker {
58*c9945492SAndroid Build Coastguard Worker register long r4 __asm__("$4") = a;
59*c9945492SAndroid Build Coastguard Worker register long r5 __asm__("$5") = b;
60*c9945492SAndroid Build Coastguard Worker register long r6 __asm__("$6") = c;
61*c9945492SAndroid Build Coastguard Worker register long r7 __asm__("$7");
62*c9945492SAndroid Build Coastguard Worker register long r2 __asm__("$2");
63*c9945492SAndroid Build Coastguard Worker
64*c9945492SAndroid Build Coastguard Worker __asm__ __volatile__ (
65*c9945492SAndroid Build Coastguard Worker "daddu $2,$0,%2 ; syscall"
66*c9945492SAndroid Build Coastguard Worker : "=&r"(r2), "=r"(r7)
67*c9945492SAndroid Build Coastguard Worker : "ir"(n), "0"(r2), "r"(r4), "r"(r5), "r"(r6)
68*c9945492SAndroid Build Coastguard Worker : SYSCALL_CLOBBERLIST);
69*c9945492SAndroid Build Coastguard Worker return r7 && r2>0 ? -r2 : r2;
70*c9945492SAndroid Build Coastguard Worker }
71*c9945492SAndroid Build Coastguard Worker
__syscall4(long n,long a,long b,long c,long d)72*c9945492SAndroid Build Coastguard Worker static inline long __syscall4(long n, long a, long b, long c, long d)
73*c9945492SAndroid Build Coastguard Worker {
74*c9945492SAndroid Build Coastguard Worker register long r4 __asm__("$4") = a;
75*c9945492SAndroid Build Coastguard Worker register long r5 __asm__("$5") = b;
76*c9945492SAndroid Build Coastguard Worker register long r6 __asm__("$6") = c;
77*c9945492SAndroid Build Coastguard Worker register long r7 __asm__("$7") = d;
78*c9945492SAndroid Build Coastguard Worker register long r2 __asm__("$2");
79*c9945492SAndroid Build Coastguard Worker
80*c9945492SAndroid Build Coastguard Worker __asm__ __volatile__ (
81*c9945492SAndroid Build Coastguard Worker "daddu $2,$0,%2 ; syscall"
82*c9945492SAndroid Build Coastguard Worker : "=&r"(r2), "+r"(r7)
83*c9945492SAndroid Build Coastguard Worker : "ir"(n), "0"(r2), "r"(r4), "r"(r5), "r"(r6)
84*c9945492SAndroid Build Coastguard Worker : SYSCALL_CLOBBERLIST);
85*c9945492SAndroid Build Coastguard Worker return r7 && r2>0 ? -r2 : r2;
86*c9945492SAndroid Build Coastguard Worker }
87*c9945492SAndroid Build Coastguard Worker
__syscall5(long n,long a,long b,long c,long d,long e)88*c9945492SAndroid Build Coastguard Worker static inline long __syscall5(long n, long a, long b, long c, long d, long e)
89*c9945492SAndroid Build Coastguard Worker {
90*c9945492SAndroid Build Coastguard Worker register long r4 __asm__("$4") = a;
91*c9945492SAndroid Build Coastguard Worker register long r5 __asm__("$5") = b;
92*c9945492SAndroid Build Coastguard Worker register long r6 __asm__("$6") = c;
93*c9945492SAndroid Build Coastguard Worker register long r7 __asm__("$7") = d;
94*c9945492SAndroid Build Coastguard Worker register long r8 __asm__("$8") = e;
95*c9945492SAndroid Build Coastguard Worker register long r2 __asm__("$2");
96*c9945492SAndroid Build Coastguard Worker
97*c9945492SAndroid Build Coastguard Worker __asm__ __volatile__ (
98*c9945492SAndroid Build Coastguard Worker "daddu $2,$0,%2 ; syscall"
99*c9945492SAndroid Build Coastguard Worker : "=&r"(r2), "+r"(r7)
100*c9945492SAndroid Build Coastguard Worker : "ir"(n), "0"(r2), "r"(r4), "r"(r5), "r"(r6), "r"(r8)
101*c9945492SAndroid Build Coastguard Worker : SYSCALL_CLOBBERLIST);
102*c9945492SAndroid Build Coastguard Worker return r7 && r2>0 ? -r2 : r2;
103*c9945492SAndroid Build Coastguard Worker }
104*c9945492SAndroid Build Coastguard Worker
__syscall6(long n,long a,long b,long c,long d,long e,long f)105*c9945492SAndroid Build Coastguard Worker static inline long __syscall6(long n, long a, long b, long c, long d, long e, long f)
106*c9945492SAndroid Build Coastguard Worker {
107*c9945492SAndroid Build Coastguard Worker register long r4 __asm__("$4") = a;
108*c9945492SAndroid Build Coastguard Worker register long r5 __asm__("$5") = b;
109*c9945492SAndroid Build Coastguard Worker register long r6 __asm__("$6") = c;
110*c9945492SAndroid Build Coastguard Worker register long r7 __asm__("$7") = d;
111*c9945492SAndroid Build Coastguard Worker register long r8 __asm__("$8") = e;
112*c9945492SAndroid Build Coastguard Worker register long r9 __asm__("$9") = f;
113*c9945492SAndroid Build Coastguard Worker register long r2 __asm__("$2");
114*c9945492SAndroid Build Coastguard Worker
115*c9945492SAndroid Build Coastguard Worker __asm__ __volatile__ (
116*c9945492SAndroid Build Coastguard Worker "daddu $2,$0,%2 ; syscall"
117*c9945492SAndroid Build Coastguard Worker : "=&r"(r2), "+r"(r7)
118*c9945492SAndroid Build Coastguard Worker : "ir"(n), "0"(r2), "r"(r4), "r"(r5), "r"(r6), "r"(r8), "r"(r9)
119*c9945492SAndroid Build Coastguard Worker : SYSCALL_CLOBBERLIST);
120*c9945492SAndroid Build Coastguard Worker return r7 && r2>0 ? -r2 : r2;
121*c9945492SAndroid Build Coastguard Worker }
122*c9945492SAndroid Build Coastguard Worker
123*c9945492SAndroid Build Coastguard Worker #define VDSO_USEFUL
124*c9945492SAndroid Build Coastguard Worker #define VDSO_CGT32_SYM "__vdso_clock_gettime"
125*c9945492SAndroid Build Coastguard Worker #define VDSO_CGT32_VER "LINUX_2.6"
126*c9945492SAndroid Build Coastguard Worker #define VDSO_CGT_SYM "__vdso_clock_gettime64"
127*c9945492SAndroid Build Coastguard Worker #define VDSO_CGT_VER "LINUX_2.6"
128*c9945492SAndroid Build Coastguard Worker
129*c9945492SAndroid Build Coastguard Worker #define SO_SNDTIMEO_OLD 0x1005
130*c9945492SAndroid Build Coastguard Worker #define SO_RCVTIMEO_OLD 0x1006
131