Chromium Code Reviews

Side by Side Diff: fusl/src/thread/x32/syscall_cp_fixup.c

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.
Jump to:
View unified diff |
OLDNEW
1 #include <sys/syscall.h> 1 #include <sys/syscall.h>
2 2
3 __attribute__((__visibility__("hidden"))) 3 __attribute__((__visibility__("hidden"))) long __syscall_cp_internal(
4 long __syscall_cp_internal(volatile void*, long long, long long, long long, long long, 4 volatile void*,
5 long long, long long, long long); 5 long long,
6 long long,
7 long long,
8 long long,
9 long long,
10 long long,
11 long long);
6 12
7 struct __timespec { long long tv_sec; long tv_nsec; }; 13 struct __timespec {
8 struct __timespec_kernel { long long tv_sec; long long tv_nsec; }; 14 long long tv_sec;
15 long tv_nsec;
16 };
17 struct __timespec_kernel {
18 long long tv_sec;
19 long long tv_nsec;
20 };
9 #define __tsc(X) ((struct __timespec*)(unsigned long)(X)) 21 #define __tsc(X) ((struct __timespec*)(unsigned long)(X))
10 #define __fixup(X) do { if(X) { \ 22 #define __fixup(X) \
11 » ts->tv_sec = __tsc(X)->tv_sec; \ 23 do { \
12 » ts->tv_nsec = __tsc(X)->tv_nsec; \ 24 if (X) { \
13 » (X) = (unsigned long)ts; } } while(0) 25 ts->tv_sec = __tsc(X)->tv_sec; \
26 ts->tv_nsec = __tsc(X)->tv_nsec; \
27 (X) = (unsigned long)ts; \
28 } \
29 } while (0)
14 30
15 __attribute__((__visibility__("hidden"))) 31 __attribute__((__visibility__("hidden"))) long __syscall_cp_asm(
16 long __syscall_cp_asm (volatile void * foo, long long n, long long a1, long long a2, long long a3, 32 volatile void* foo,
17 » long long a4, long long a5, long long a6) 33 long long n,
18 { 34 long long a1,
19 » struct __timespec_kernel ts[1]; 35 long long a2,
20 » switch (n) { 36 long long a3,
21 » case SYS_mq_timedsend: case SYS_mq_timedreceive: case SYS_pselect6: 37 long long a4,
22 » » __fixup(a5); 38 long long a5,
23 » » break; 39 long long a6) {
24 » case SYS_futex: 40 struct __timespec_kernel ts[1];
25 » » if((a2 & (~128 /* FUTEX_PRIVATE_FLAG */)) == 0 /* FUTEX_WAIT */) 41 switch (n) {
26 » » » __fixup(a4); 42 case SYS_mq_timedsend:
27 » » break; 43 case SYS_mq_timedreceive:
28 » case SYS_clock_nanosleep: 44 case SYS_pselect6:
29 » case SYS_rt_sigtimedwait: case SYS_ppoll: 45 __fixup(a5);
30 » » __fixup(a3); 46 break;
31 » » break; 47 case SYS_futex:
32 » case SYS_nanosleep: 48 if ((a2 & (~128 /* FUTEX_PRIVATE_FLAG */)) == 0 /* FUTEX_WAIT */)
33 » » __fixup(a1); 49 __fixup(a4);
34 » » break; 50 break;
35 » } 51 case SYS_clock_nanosleep:
36 » return __syscall_cp_internal(foo, n, a1, a2, a3, a4, a5, a6); 52 case SYS_rt_sigtimedwait:
53 case SYS_ppoll:
54 __fixup(a3);
55 break;
56 case SYS_nanosleep:
57 __fixup(a1);
58 break;
59 }
60 return __syscall_cp_internal(foo, n, a1, a2, a3, a4, a5, a6);
37 } 61 }
38
OLDNEW

Powered by Google App Engine