1 #define __SYSCALL_LL_E(x) (x)
2 #define __SYSCALL_LL_O(x) (x)
4 __attribute__((visibility("hidden")))
5 long (__syscall
)(long, ...);
7 #define SYSCALL_RLIM_INFINITY (-1UL/2)
9 #if _MIPSEL || __MIPSEL || __MIPSEL__
10 #define __stat_fix(st) ((st),(void)0)
13 static inline void __stat_fix(long p
)
15 struct stat
*st
= (struct stat
*)p
;
21 static inline long __syscall0(long n
)
23 register long r7
__asm__("$7");
24 register long r2
__asm__("$2");
25 __asm__
__volatile__ (
26 "addu $2,$0,%2 ; syscall"
27 : "=&r"(r2
), "=r"(r7
) : "ir"(n
), "0"(r2
), "1"(r7
)
28 : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13",
29 "$14", "$15", "$24", "$25", "hi", "lo", "memory");
33 static inline long __syscall1(long n
, long a
)
35 register long r4
__asm__("$4") = a
;
36 register long r7
__asm__("$7");
37 register long r2
__asm__("$2");
38 __asm__
__volatile__ (
39 "addu $2,$0,%2 ; syscall"
40 : "=&r"(r2
), "=r"(r7
) : "ir"(n
), "0"(r2
), "1"(r7
),
42 : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13",
43 "$14", "$15", "$24", "$25", "hi", "lo", "memory");
47 static inline long __syscall2(long n
, long a
, long b
)
49 register long r4
__asm__("$4") = a
;
50 register long r5
__asm__("$5") = b
;
51 register long r7
__asm__("$7");
52 register long r2
__asm__("$2");
53 __asm__
__volatile__ (
54 "addu $2,$0,%2 ; syscall"
55 : "=&r"(r2
), "=r"(r7
) : "ir"(n
), "0"(r2
), "1"(r7
),
57 : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13",
58 "$14", "$15", "$24", "$25", "hi", "lo", "memory");
61 if (n
== SYS_stat
|| n
== SYS_fstat
|| n
== SYS_lstat
) __stat_fix(b
);
65 static inline long __syscall3(long n
, long a
, long b
, long c
)
67 register long r4
__asm__("$4") = a
;
68 register long r5
__asm__("$5") = b
;
69 register long r6
__asm__("$6") = c
;
70 register long r7
__asm__("$7");
71 register long r2
__asm__("$2");
72 __asm__
__volatile__ (
73 "addu $2,$0,%2 ; syscall"
74 : "=&r"(r2
), "=r"(r7
) : "ir"(n
), "0"(r2
), "1"(r7
),
75 "r"(r4
), "r"(r5
), "r"(r6
)
76 : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13",
77 "$14", "$15", "$24", "$25", "hi", "lo", "memory");
80 if (n
== SYS_stat
|| n
== SYS_fstat
|| n
== SYS_lstat
) __stat_fix(b
);
84 static inline long __syscall4(long n
, long a
, long b
, long c
, long d
)
86 register long r4
__asm__("$4") = a
;
87 register long r5
__asm__("$5") = b
;
88 register long r6
__asm__("$6") = c
;
89 register long r7
__asm__("$7") = d
;
90 register long r2
__asm__("$2");
91 __asm__
__volatile__ (
92 "addu $2,$0,%2 ; syscall"
93 : "=&r"(r2
), "=r"(r7
) : "ir"(n
), "0"(r2
), "1"(r7
),
94 "r"(r4
), "r"(r5
), "r"(r6
)
95 : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13",
96 "$14", "$15", "$24", "$25", "hi", "lo", "memory");
99 if (n
== SYS_stat
|| n
== SYS_fstat
|| n
== SYS_lstat
) __stat_fix(b
);
100 if (n
== SYS_fstatat
) __stat_fix(c
);
104 static inline long __syscall5(long n
, long a
, long b
, long c
, long d
, long e
)
106 long r2
= (__syscall
)(n
, a
, b
, c
, d
, e
);
107 if (r2
> -4096UL) return r2
;
108 if (n
== SYS_stat
|| n
== SYS_fstat
|| n
== SYS_lstat
) __stat_fix(b
);
109 if (n
== SYS_fstatat
) __stat_fix(c
);
113 static inline long __syscall6(long n
, long a
, long b
, long c
, long d
, long e
, long f
)
115 long r2
= (__syscall
)(n
, a
, b
, c
, d
, e
, f
);
116 if (r2
> -4096UL) return r2
;
117 if (n
== SYS_stat
|| n
== SYS_fstat
|| n
== SYS_lstat
) __stat_fix(b
);
118 if (n
== SYS_fstatat
) __stat_fix(c
);
123 #define VDSO_CGT_SYM "__vdso_clock_gettime"
124 #define VDSO_CGT_VER "LINUX_2.6"