| OLD | NEW |
| (Empty) |
| 1 #define __SYSCALL_LL_E(x) \ | |
| 2 ((union { \ | |
| 3 long long ll; \ | |
| 4 long l[2]; \ | |
| 5 }){.ll = x}) \ | |
| 6 .l[0], \ | |
| 7 ((union { \ | |
| 8 long long ll; \ | |
| 9 long l[2]; \ | |
| 10 }){.ll = x}) \ | |
| 11 .l[1] | |
| 12 #define __SYSCALL_LL_O(x) __SYSCALL_LL_E((x)) | |
| 13 | |
| 14 static inline long __syscall0(long n) { | |
| 15 unsigned long __ret; | |
| 16 __asm__ __volatile__(".hidden __vsyscall ; call __vsyscall" | |
| 17 : "=a"(__ret) | |
| 18 : "a"(n) | |
| 19 : "memory"); | |
| 20 return __ret; | |
| 21 } | |
| 22 | |
| 23 static inline long __syscall1(long n, long a1) { | |
| 24 unsigned long __ret; | |
| 25 __asm__ __volatile__(".hidden __vsyscall ; call __vsyscall" | |
| 26 : "=a"(__ret) | |
| 27 : "a"(n), "d"(a1) | |
| 28 : "memory"); | |
| 29 return __ret; | |
| 30 } | |
| 31 | |
| 32 static inline long __syscall2(long n, long a1, long a2) { | |
| 33 unsigned long __ret; | |
| 34 __asm__ __volatile__(".hidden __vsyscall ; call __vsyscall" | |
| 35 : "=a"(__ret) | |
| 36 : "a"(n), "d"(a1), "c"(a2) | |
| 37 : "memory"); | |
| 38 return __ret; | |
| 39 } | |
| 40 | |
| 41 static inline long __syscall3(long n, long a1, long a2, long a3) { | |
| 42 unsigned long __ret; | |
| 43 __asm__ __volatile__(".hidden __vsyscall ; call __vsyscall" | |
| 44 : "=a"(__ret) | |
| 45 : "a"(n), "d"(a1), "c"(a2), "D"(a3) | |
| 46 : "memory"); | |
| 47 return __ret; | |
| 48 } | |
| 49 | |
| 50 static inline long __syscall4(long n, long a1, long a2, long a3, long a4) { | |
| 51 unsigned long __ret; | |
| 52 __asm__ __volatile__(".hidden __vsyscall ; call __vsyscall" | |
| 53 : "=a"(__ret) | |
| 54 : "a"(n), "d"(a1), "c"(a2), "D"(a3), "S"(a4) | |
| 55 : "memory"); | |
| 56 return __ret; | |
| 57 } | |
| 58 | |
| 59 static inline long __syscall5(long n, | |
| 60 long a1, | |
| 61 long a2, | |
| 62 long a3, | |
| 63 long a4, | |
| 64 long a5) { | |
| 65 unsigned long __ret; | |
| 66 __asm__ __volatile__( | |
| 67 "push %6 ; .hidden __vsyscall ; call __vsyscall ; add $4,%%esp" | |
| 68 : "=a"(__ret) | |
| 69 : "a"(n), "d"(a1), "c"(a2), "D"(a3), "S"(a4), "g"(a5) | |
| 70 : "memory"); | |
| 71 return __ret; | |
| 72 } | |
| 73 | |
| 74 static inline long | |
| 75 __syscall6(long n, long a1, long a2, long a3, long a4, long a5, long a6) { | |
| 76 unsigned long __ret; | |
| 77 __asm__ __volatile__( | |
| 78 "push %6 ; .hidden __vsyscall6 ; call __vsyscall6 ; add $4,%%esp" | |
| 79 : "=a"(__ret) | |
| 80 : "a"(n), "d"(a1), "c"(a2), "D"(a3), "S"(a4), "g"(0 + (long[]){a5, a6}) | |
| 81 : "memory"); | |
| 82 return __ret; | |
| 83 } | |
| 84 | |
| 85 #define VDSO_USEFUL | |
| 86 #define VDSO_CGT_SYM "__vdso_clock_gettime" | |
| 87 #define VDSO_CGT_VER "LINUX_2.6" | |
| 88 | |
| 89 #define SYSCALL_USE_SOCKETCALL | |
| OLD | NEW |