Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1698)

Side by Side Diff: fusl/arch/x32/syscall_arch.h

Issue 1714623002: [fusl] clang-format fusl (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: headers too Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 #define __scc(X) sizeof(1?(X):0ULL) < 8 ? (unsigned long) (X) : (long long) (X) 4 #define __scc(X) \
5 sizeof(1 ? (X) : 0ULL) < 8 ? (unsigned long)(X) : (long long)(X)
5 typedef long long syscall_arg_t; 6 typedef long long syscall_arg_t;
6 struct __timespec { long long tv_sec; long tv_nsec; }; 7 struct __timespec {
7 struct __timespec_kernel { long long tv_sec; long long tv_nsec; }; 8 long long tv_sec;
9 long tv_nsec;
10 };
11 struct __timespec_kernel {
12 long long tv_sec;
13 long long tv_nsec;
14 };
8 #define __tsc(X) ((struct __timespec*)(unsigned long)(X)) 15 #define __tsc(X) ((struct __timespec*)(unsigned long)(X))
9 #define __fixup(X) do { if(X) { \ 16 #define __fixup(X) \
10 » ts->tv_sec = __tsc(X)->tv_sec; \ 17 do { \
11 » ts->tv_nsec = __tsc(X)->tv_nsec; \ 18 if (X) { \
12 » (X) = (unsigned long)ts; } } while(0) 19 ts->tv_sec = __tsc(X)->tv_sec; \
13 #define __fixup_case_2 \ 20 ts->tv_nsec = __tsc(X)->tv_nsec; \
14 » case SYS_nanosleep: \ 21 (X) = (unsigned long)ts; \
15 » » __fixup(a1); break; \ 22 } \
16 » case SYS_clock_settime: \ 23 } while (0)
17 » » __fixup(a2); break; 24 #define __fixup_case_2 \
18 #define __fixup_case_3 \ 25 case SYS_nanosleep: \
19 » case SYS_clock_nanosleep: case SYS_rt_sigtimedwait: case SYS_ppoll: \ 26 __fixup(a1); \
20 » » __fixup(a3); break; \ 27 break; \
21 » case SYS_utimensat: \ 28 case SYS_clock_settime: \
22 » » if(a3) { \ 29 __fixup(a2); \
23 » » » ts[0].tv_sec = __tsc(a3)[0].tv_sec; \ 30 break;
24 » » » ts[0].tv_nsec = __tsc(a3)[0].tv_nsec; \ 31 #define __fixup_case_3 \
25 » » » ts[1].tv_sec = __tsc(a3)[1].tv_sec; \ 32 case SYS_clock_nanosleep: \
26 » » » ts[1].tv_nsec = __tsc(a3)[1].tv_nsec; \ 33 case SYS_rt_sigtimedwait: \
27 » » » a3 = (unsigned long)ts; \ 34 case SYS_ppoll: \
28 » » } break; 35 __fixup(a3); \
29 #define __fixup_case_4 \ 36 break; \
30 » case SYS_futex: \ 37 case SYS_utimensat: \
31 » » if((a2 & (~128 /* FUTEX_PRIVATE_FLAG */)) == 0 /* FUTEX_WAIT */) __fixup(a4); break; 38 if (a3) { \
32 #define __fixup_case_5 \ 39 ts[0].tv_sec = __tsc(a3)[0].tv_sec; \
33 » case SYS_mq_timedsend: case SYS_mq_timedreceive: case SYS_pselect6: \ 40 ts[0].tv_nsec = __tsc(a3)[0].tv_nsec; \
34 » » __fixup(a5); break; 41 ts[1].tv_sec = __tsc(a3)[1].tv_sec; \
42 ts[1].tv_nsec = __tsc(a3)[1].tv_nsec; \
43 a3 = (unsigned long)ts; \
44 } \
45 break;
46 #define __fixup_case_4 \
47 case SYS_futex: \
48 if ((a2 & (~128 /* FUTEX_PRIVATE_FLAG */)) == 0 /* FUTEX_WAIT */) \
49 __fixup(a4); \
50 break;
51 #define __fixup_case_5 \
52 case SYS_mq_timedsend: \
53 case SYS_mq_timedreceive: \
54 case SYS_pselect6: \
55 __fixup(a5); \
56 break;
35 57
36 static __inline long __syscall0(long long n) 58 static __inline long __syscall0(long long n) {
37 { 59 unsigned long ret;
38 » unsigned long ret; 60 __asm__ __volatile__("syscall" : "=a"(ret) : "a"(n) : "rcx", "r11", "memory");
39 » __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n) : "rcx", "r11", "me mory"); 61 return ret;
40 » return ret;
41 } 62 }
42 63
43 static __inline long __syscall1(long long n, long long a1) 64 static __inline long __syscall1(long long n, long long a1) {
44 { 65 unsigned long ret;
45 » unsigned long ret; 66 __asm__ __volatile__("syscall"
46 » __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1) : "rcx", " r11", "memory"); 67 : "=a"(ret)
47 » return ret; 68 : "a"(n), "D"(a1)
69 : "rcx", "r11", "memory");
70 return ret;
48 } 71 }
49 72
50 static __inline long __syscall2(long long n, long long a1, long long a2) 73 static __inline long __syscall2(long long n, long long a1, long long a2) {
51 { 74 unsigned long ret;
52 » unsigned long ret; 75 struct __timespec_kernel ts[1];
53 » struct __timespec_kernel ts[1]; 76 switch (n) { __fixup_case_2; }
54 » switch (n) { 77 __asm__ __volatile__("syscall"
55 » » __fixup_case_2; 78 : "=a"(ret)
56 » } 79 : "a"(n), "D"(a1), "S"(a2)
57 » __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2) 80 : "rcx", "r11", "memory");
58 » » » » » : "rcx", "r11", "memory"); 81 return ret;
59 » return ret;
60 } 82 }
61 83
62 static __inline long __syscall3(long long n, long long a1, long long a2, long lo ng a3) 84 static __inline long __syscall3(long long n,
63 { 85 long long a1,
64 » unsigned long ret; 86 long long a2,
65 » struct __timespec_kernel ts[2]; 87 long long a3) {
66 » switch (n) { 88 unsigned long ret;
67 » » __fixup_case_2; 89 struct __timespec_kernel ts[2];
68 » » __fixup_case_3; 90 switch (n) {
69 » } 91 __fixup_case_2;
70 » __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2), 92 __fixup_case_3;
71 » » » » » » "d"(a3) : "rcx", "r11", "memor y"); 93 }
72 » return ret; 94 __asm__ __volatile__("syscall"
95 : "=a"(ret)
96 : "a"(n), "D"(a1), "S"(a2), "d"(a3)
97 : "rcx", "r11", "memory");
98 return ret;
73 } 99 }
74 100
75 static __inline long __syscall4(long long n, long long a1, long long a2, long lo ng a3, 101 static __inline long __syscall4(long long n,
76 long long a4_) 102 long long a1,
77 { 103 long long a2,
78 » unsigned long ret; 104 long long a3,
79 » register long long a4 __asm__("r10") = a4_; 105 long long a4_) {
80 » struct __timespec_kernel ts[2]; 106 unsigned long ret;
81 » switch (n) { 107 register long long a4 __asm__("r10") = a4_;
82 » » __fixup_case_2; 108 struct __timespec_kernel ts[2];
83 » » __fixup_case_3; 109 switch (n) {
84 » » __fixup_case_4; 110 __fixup_case_2;
85 » } 111 __fixup_case_3;
86 » __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2), 112 __fixup_case_4;
87 » » » » » "d"(a3), "r"(a4): "rcx", "r11", "memor y"); 113 }
88 » return ret; 114 __asm__ __volatile__("syscall"
115 : "=a"(ret)
116 : "a"(n), "D"(a1), "S"(a2), "d"(a3), "r"(a4)
117 : "rcx", "r11", "memory");
118 return ret;
89 } 119 }
90 120
91 static __inline long __syscall5(long long n, long long a1, long long a2, long lo ng a3, 121 static __inline long __syscall5(long long n,
92 long long a4_, long long a5_) 122 long long a1,
93 { 123 long long a2,
94 » unsigned long ret; 124 long long a3,
95 » register long long a4 __asm__("r10") = a4_; 125 long long a4_,
96 » register long long a5 __asm__("r8") = a5_; 126 long long a5_) {
97 » struct __timespec_kernel ts[2]; 127 unsigned long ret;
98 » switch (n) { 128 register long long a4 __asm__("r10") = a4_;
99 » » __fixup_case_2; 129 register long long a5 __asm__("r8") = a5_;
100 » » __fixup_case_3; 130 struct __timespec_kernel ts[2];
101 » » __fixup_case_4; 131 switch (n) {
102 » » __fixup_case_5; 132 __fixup_case_2;
103 » } 133 __fixup_case_3;
104 » __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2), 134 __fixup_case_4;
105 » » » » » "d"(a3), "r"(a4), "r"(a5) : "rcx", "r1 1", "memory"); 135 __fixup_case_5;
106 » return ret; 136 }
137 __asm__ __volatile__("syscall"
138 : "=a"(ret)
139 : "a"(n), "D"(a1), "S"(a2), "d"(a3), "r"(a4), "r"(a5)
140 : "rcx", "r11", "memory");
141 return ret;
107 } 142 }
108 143
109 static __inline long __syscall6(long long n, long long a1, long long a2, long lo ng a3, 144 static __inline long __syscall6(long long n,
110 long long a4_, long long a5_, long long a6_ ) 145 long long a1,
111 { 146 long long a2,
112 » unsigned long ret; 147 long long a3,
113 » register long long a4 __asm__("r10") = a4_; 148 long long a4_,
114 » register long long a5 __asm__("r8") = a5_; 149 long long a5_,
115 » register long long a6 __asm__("r9") = a6_; 150 long long a6_) {
116 » struct __timespec_kernel ts[2]; 151 unsigned long ret;
117 » switch (n) { 152 register long long a4 __asm__("r10") = a4_;
118 » » __fixup_case_2; 153 register long long a5 __asm__("r8") = a5_;
119 » » __fixup_case_3; 154 register long long a6 __asm__("r9") = a6_;
120 » » __fixup_case_4; 155 struct __timespec_kernel ts[2];
121 » » __fixup_case_5; 156 switch (n) {
122 » } 157 __fixup_case_2;
123 » __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2), 158 __fixup_case_3;
124 » » » » » "d"(a3), "r"(a4), "r"(a5), "r"(a6) : " rcx", "r11", "memory"); 159 __fixup_case_4;
125 » return ret; 160 __fixup_case_5;
161 }
162 __asm__ __volatile__("syscall"
163 : "=a"(ret)
164 : "a"(n), "D"(a1), "S"(a2), "d"(a3), "r"(a4), "r"(a5),
165 "r"(a6)
166 : "rcx", "r11", "memory");
167 return ret;
126 } 168 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698