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

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

Issue 1724903002: [fusl] Remove code for unsupported architectures (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: 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
« no previous file with comments | « fusl/arch/mips/reloc.h ('k') | fusl/arch/powerpc/atomic_arch.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(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) 0, __SYSCALL_LL_E((x))
13
14 __attribute__((visibility("hidden"))) long(__syscall)(long, ...);
15
16 #define SYSCALL_RLIM_INFINITY (-1UL / 2)
17
18 #if _MIPSEL || __MIPSEL || __MIPSEL__
19 #define __stat_fix(st) ((st), (void)0)
20 #else
21 #include <sys/stat.h>
22 static inline void __stat_fix(long p) {
23 struct stat* st = (struct stat*)p;
24 st->st_dev >>= 32;
25 st->st_rdev >>= 32;
26 }
27 #endif
28
29 #ifndef __clang__
30
31 static inline long __syscall0(long n) {
32 register long r7 __asm__("$7");
33 register long r2 __asm__("$2");
34 __asm__ __volatile__("addu $2,$0,%2 ; syscall"
35 : "=&r"(r2), "=r"(r7)
36 : "ir"(n), "0"(r2), "1"(r7)
37 : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13",
38 "$14", "$15", "$24", "$25", "hi", "lo", "memory");
39 return r7 ? -r2 : r2;
40 }
41
42 static inline long __syscall1(long n, long a) {
43 register long r4 __asm__("$4") = a;
44 register long r7 __asm__("$7");
45 register long r2 __asm__("$2");
46 __asm__ __volatile__("addu $2,$0,%2 ; syscall"
47 : "=&r"(r2), "=r"(r7)
48 : "ir"(n), "0"(r2), "1"(r7), "r"(r4)
49 : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13",
50 "$14", "$15", "$24", "$25", "hi", "lo", "memory");
51 return r7 ? -r2 : r2;
52 }
53
54 static inline long __syscall2(long n, long a, long b) {
55 register long r4 __asm__("$4") = a;
56 register long r5 __asm__("$5") = b;
57 register long r7 __asm__("$7");
58 register long r2 __asm__("$2");
59 __asm__ __volatile__("addu $2,$0,%2 ; syscall"
60 : "=&r"(r2), "=r"(r7)
61 : "ir"(n), "0"(r2), "1"(r7), "r"(r4), "r"(r5)
62 : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13",
63 "$14", "$15", "$24", "$25", "hi", "lo", "memory");
64 if (r7)
65 return -r2;
66 long ret = r2;
67 if (n == SYS_stat64 || n == SYS_fstat64 || n == SYS_lstat64)
68 __stat_fix(b);
69 return ret;
70 }
71
72 static inline long __syscall3(long n, long a, long b, long c) {
73 register long r4 __asm__("$4") = a;
74 register long r5 __asm__("$5") = b;
75 register long r6 __asm__("$6") = c;
76 register long r7 __asm__("$7");
77 register long r2 __asm__("$2");
78 __asm__ __volatile__("addu $2,$0,%2 ; syscall"
79 : "=&r"(r2), "=r"(r7)
80 : "ir"(n), "0"(r2), "1"(r7), "r"(r4), "r"(r5), "r"(r6)
81 : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13",
82 "$14", "$15", "$24", "$25", "hi", "lo", "memory");
83 if (r7)
84 return -r2;
85 long ret = r2;
86 if (n == SYS_stat64 || n == SYS_fstat64 || n == SYS_lstat64)
87 __stat_fix(b);
88 return ret;
89 }
90
91 static inline long __syscall4(long n, long a, long b, long c, long d) {
92 register long r4 __asm__("$4") = a;
93 register long r5 __asm__("$5") = b;
94 register long r6 __asm__("$6") = c;
95 register long r7 __asm__("$7") = d;
96 register long r2 __asm__("$2");
97 __asm__ __volatile__("addu $2,$0,%2 ; syscall"
98 : "=&r"(r2), "=r"(r7)
99 : "ir"(n), "0"(r2), "1"(r7), "r"(r4), "r"(r5), "r"(r6)
100 : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13",
101 "$14", "$15", "$24", "$25", "hi", "lo", "memory");
102 if (r7)
103 return -r2;
104 long ret = r2;
105 if (n == SYS_stat64 || n == SYS_fstat64 || n == SYS_lstat64)
106 __stat_fix(b);
107 if (n == SYS_fstatat)
108 __stat_fix(c);
109 return ret;
110 }
111
112 #else
113
114 static inline long __syscall0(long n) {
115 return (__syscall)(n);
116 }
117
118 static inline long __syscall1(long n, long a) {
119 return (__syscall)(n, a);
120 }
121
122 static inline long __syscall2(long n, long a, long b) {
123 long r2 = (__syscall)(n, a, b);
124 if (r2 > -4096UL)
125 return r2;
126 if (n == SYS_stat64 || n == SYS_fstat64 || n == SYS_lstat64)
127 __stat_fix(b);
128 return r2;
129 }
130
131 static inline long __syscall3(long n, long a, long b, long c) {
132 long r2 = (__syscall)(n, a, b, c);
133 if (r2 > -4096UL)
134 return r2;
135 if (n == SYS_stat64 || n == SYS_fstat64 || n == SYS_lstat64)
136 __stat_fix(b);
137 return r2;
138 }
139
140 static inline long __syscall4(long n, long a, long b, long c, long d) {
141 long r2 = (__syscall)(n, a, b, c, d);
142 if (r2 > -4096UL)
143 return r2;
144 if (n == SYS_stat64 || n == SYS_fstat64 || n == SYS_lstat64)
145 __stat_fix(b);
146 if (n == SYS_fstatat)
147 __stat_fix(c);
148 return r2;
149 }
150
151 #endif
152
153 static inline long __syscall5(long n, long a, long b, long c, long d, long e) {
154 long r2 = (__syscall)(n, a, b, c, d, e);
155 if (r2 > -4096UL)
156 return r2;
157 if (n == SYS_stat64 || n == SYS_fstat64 || n == SYS_lstat64)
158 __stat_fix(b);
159 if (n == SYS_fstatat)
160 __stat_fix(c);
161 return r2;
162 }
163
164 static inline long
165 __syscall6(long n, long a, long b, long c, long d, long e, long f) {
166 long r2 = (__syscall)(n, a, b, c, d, e, f);
167 if (r2 > -4096UL)
168 return r2;
169 if (n == SYS_stat64 || n == SYS_fstat64 || n == SYS_lstat64)
170 __stat_fix(b);
171 if (n == SYS_fstatat)
172 __stat_fix(c);
173 return r2;
174 }
175
176 #define VDSO_USEFUL
177 #define VDSO_CGT_SYM "__vdso_clock_gettime"
178 #define VDSO_CGT_VER "LINUX_2.6"
OLDNEW
« no previous file with comments | « fusl/arch/mips/reloc.h ('k') | fusl/arch/powerpc/atomic_arch.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698