OLD | NEW |
1 #define __SYSCALL_LL_E(x) (x) | 1 #define __SYSCALL_LL_E(x) (x) |
2 #define __SYSCALL_LL_O(x) (x) | 2 #define __SYSCALL_LL_O(x) (x) |
3 | 3 |
4 static __inline long __syscall0(long n) | 4 static __inline long __syscall0(long n) { |
5 { | 5 unsigned long ret; |
6 » unsigned long ret; | 6 __asm__ __volatile__("syscall" : "=a"(ret) : "a"(n) : "rcx", "r11", "memory"); |
7 » __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n) : "rcx", "r11", "me
mory"); | 7 return ret; |
8 » return ret; | |
9 } | 8 } |
10 | 9 |
11 static __inline long __syscall1(long n, long a1) | 10 static __inline long __syscall1(long n, long a1) { |
12 { | 11 unsigned long ret; |
13 » unsigned long ret; | 12 __asm__ __volatile__("syscall" |
14 » __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1) : "rcx", "
r11", "memory"); | 13 : "=a"(ret) |
15 » return ret; | 14 : "a"(n), "D"(a1) |
| 15 : "rcx", "r11", "memory"); |
| 16 return ret; |
16 } | 17 } |
17 | 18 |
18 static __inline long __syscall2(long n, long a1, long a2) | 19 static __inline long __syscall2(long n, long a1, long a2) { |
19 { | 20 unsigned long ret; |
20 » unsigned long ret; | 21 __asm__ __volatile__("syscall" |
21 » __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2) | 22 : "=a"(ret) |
22 » » » » » » : "rcx", "r11", "memory"); | 23 : "a"(n), "D"(a1), "S"(a2) |
23 » return ret; | 24 : "rcx", "r11", "memory"); |
| 25 return ret; |
24 } | 26 } |
25 | 27 |
26 static __inline long __syscall3(long n, long a1, long a2, long a3) | 28 static __inline long __syscall3(long n, long a1, long a2, long a3) { |
27 { | 29 unsigned long ret; |
28 » unsigned long ret; | 30 __asm__ __volatile__("syscall" |
29 » __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2), | 31 : "=a"(ret) |
30 » » » » » » "d"(a3) : "rcx", "r11", "memor
y"); | 32 : "a"(n), "D"(a1), "S"(a2), "d"(a3) |
31 » return ret; | 33 : "rcx", "r11", "memory"); |
| 34 return ret; |
32 } | 35 } |
33 | 36 |
34 static __inline long __syscall4(long n, long a1, long a2, long a3, long a4) | 37 static __inline long __syscall4(long n, long a1, long a2, long a3, long a4) { |
35 { | 38 unsigned long ret; |
36 » unsigned long ret; | 39 register long r10 __asm__("r10") = a4; |
37 » register long r10 __asm__("r10") = a4; | 40 __asm__ __volatile__("syscall" |
38 » __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2), | 41 : "=a"(ret) |
39 » » » » » » "d"(a3), "r"(r10): "rcx", "r11
", "memory"); | 42 : "a"(n), "D"(a1), "S"(a2), "d"(a3), "r"(r10) |
40 » return ret; | 43 : "rcx", "r11", "memory"); |
| 44 return ret; |
41 } | 45 } |
42 | 46 |
43 static __inline long __syscall5(long n, long a1, long a2, long a3, long a4, long
a5) | 47 static __inline long __syscall5(long n, |
44 { | 48 long a1, |
45 » unsigned long ret; | 49 long a2, |
46 » register long r10 __asm__("r10") = a4; | 50 long a3, |
47 » register long r8 __asm__("r8") = a5; | 51 long a4, |
48 » __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2), | 52 long a5) { |
49 » » » » » » "d"(a3), "r"(r10), "r"(r8) : "
rcx", "r11", "memory"); | 53 unsigned long ret; |
50 » return ret; | 54 register long r10 __asm__("r10") = a4; |
| 55 register long r8 __asm__("r8") = a5; |
| 56 __asm__ __volatile__("syscall" |
| 57 : "=a"(ret) |
| 58 : "a"(n), "D"(a1), "S"(a2), "d"(a3), "r"(r10), "r"(r8) |
| 59 : "rcx", "r11", "memory"); |
| 60 return ret; |
51 } | 61 } |
52 | 62 |
53 static __inline long __syscall6(long n, long a1, long a2, long a3, long a4, long
a5, long a6) | 63 static __inline long |
54 { | 64 __syscall6(long n, long a1, long a2, long a3, long a4, long a5, long a6) { |
55 » unsigned long ret; | 65 unsigned long ret; |
56 » register long r10 __asm__("r10") = a4; | 66 register long r10 __asm__("r10") = a4; |
57 » register long r8 __asm__("r8") = a5; | 67 register long r8 __asm__("r8") = a5; |
58 » register long r9 __asm__("r9") = a6; | 68 register long r9 __asm__("r9") = a6; |
59 » __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2), | 69 __asm__ __volatile__("syscall" |
60 » » » » » » "d"(a3), "r"(r10), "r"(r8), "r
"(r9) : "rcx", "r11", "memory"); | 70 : "=a"(ret) |
61 » return ret; | 71 : "a"(n), "D"(a1), "S"(a2), "d"(a3), "r"(r10), "r"(r8), |
| 72 "r"(r9) |
| 73 : "rcx", "r11", "memory"); |
| 74 return ret; |
62 } | 75 } |
63 | 76 |
64 #define VDSO_USEFUL | 77 #define VDSO_USEFUL |
65 #define VDSO_CGT_SYM "__vdso_clock_gettime" | 78 #define VDSO_CGT_SYM "__vdso_clock_gettime" |
66 #define VDSO_CGT_VER "LINUX_2.6" | 79 #define VDSO_CGT_VER "LINUX_2.6" |
OLD | NEW |