1 #ifndef FIO_OS_LINUX_SYSCALL_H
2 #define FIO_OS_LINUX_SYSCALL_H
4 #include "../arch/arch.h"
6 /* Linux syscalls for x86 */
7 #if defined(ARCH_X86_H)
8 #ifndef __NR_ioprio_set
9 #define __NR_ioprio_set 289
10 #define __NR_ioprio_get 290
13 #ifndef __NR_fadvise64
14 #define __NR_fadvise64 250
17 #ifndef __NR_sys_splice
18 #define __NR_sys_splice 313
19 #define __NR_sys_tee 315
20 #define __NR_sys_vmsplice 316
24 #define __NR_preadv2 378
27 #define __NR_pwritev2 379
30 /* Linux syscalls for x86_64 */
31 #elif defined(ARCH_X86_64_H)
32 #ifndef __NR_ioprio_set
33 #define __NR_ioprio_set 251
34 #define __NR_ioprio_get 252
37 #ifndef __NR_fadvise64
38 #define __NR_fadvise64 221
41 #ifndef __NR_sys_splice
42 #define __NR_sys_splice 275
43 #define __NR_sys_tee 276
44 #define __NR_sys_vmsplice 278
48 #define __NR_shmget 29
50 #define __NR_shmctl 31
55 #define __NR_preadv2 327
58 #define __NR_pwritev2 328
61 /* Linux syscalls for ppc */
62 #elif defined(ARCH_PPC_H)
63 #ifndef __NR_ioprio_set
64 #define __NR_ioprio_set 273
65 #define __NR_ioprio_get 274
68 #ifndef __NR_fadvise64
69 #define __NR_fadvise64 233
72 #ifndef __NR_sys_splice
73 #define __NR_sys_splice 283
74 #define __NR_sys_tee 284
75 #define __NR_sys_vmsplice 285
78 /* Linux syscalls for ia64 */
79 #elif defined(ARCH_IA64_H)
80 #ifndef __NR_ioprio_set
81 #define __NR_ioprio_set 1274
82 #define __NR_ioprio_get 1275
85 #ifndef __NR_fadvise64
86 #define __NR_fadvise64 1234
89 #ifndef __NR_sys_splice
90 #define __NR_sys_splice 1297
91 #define __NR_sys_tee 1301
92 #define __NR_sys_vmsplice 1302
96 #define __NR_preadv2 1348
99 #define __NR_pwritev2 1349
102 /* Linux syscalls for alpha */
103 #elif defined(ARCH_ALPHA_H)
104 #ifndef __NR_ioprio_set
105 #define __NR_ioprio_set 442
106 #define __NR_ioprio_get 443
109 #ifndef __NR_fadvise64
110 #define __NR_fadvise64 413
113 #ifndef __NR_sys_splice
114 #define __NR_sys_splice 468
115 #define __NR_sys_tee 470
116 #define __NR_sys_vmsplice 471
119 /* Linux syscalls for s390 */
120 #elif defined(ARCH_S390_H)
121 #ifndef __NR_ioprio_set
122 #define __NR_ioprio_set 282
123 #define __NR_ioprio_get 283
126 #ifndef __NR_fadvise64
127 #define __NR_fadvise64 253
130 #ifndef __NR_sys_splice
131 #define __NR_sys_splice 306
132 #define __NR_sys_tee 308
133 #define __NR_sys_vmsplice 309
137 #define __NR_preadv2 376
139 #ifndef __NR_pwritev2
140 #define __NR_pwritev2 377
143 /* Linux syscalls for sparc */
144 #elif defined(ARCH_SPARC_H)
145 #ifndef __NR_ioprio_set
146 #define __NR_ioprio_set 196
147 #define __NR_ioprio_get 218
150 #ifndef __NR_fadvise64
151 #define __NR_fadvise64 209
154 #ifndef __NR_sys_splice
155 #define __NR_sys_splice 232
156 #define __NR_sys_tee 280
157 #define __NR_sys_vmsplice 25
161 #define __NR_preadv2 358
163 #ifndef __NR_pwritev2
164 #define __NR_pwritev2 359
167 /* Linux syscalls for sparc64 */
168 #elif defined(ARCH_SPARC64_H)
169 #ifndef __NR_ioprio_set
170 #define __NR_ioprio_set 196
171 #define __NR_ioprio_get 218
174 #ifndef __NR_fadvise64
175 #define __NR_fadvise64 209
178 #ifndef __NR_sys_splice
179 #define __NR_sys_splice 232
180 #define __NR_sys_tee 280
181 #define __NR_sys_vmsplice 25
185 #define __NR_preadv2 358
187 #ifndef __NR_pwritev2
188 #define __NR_pwritev2 359
191 /* Linux syscalls for arm */
192 #elif defined(ARCH_ARM_H)
193 #ifndef __NR_ioprio_set
194 #define __NR_ioprio_set 314
195 #define __NR_ioprio_get 315
198 #ifndef __NR_fadvise64
199 #define __NR_fadvise64 270
202 #ifndef __NR_sys_splice
203 #define __NR_sys_splice 340
204 #define __NR_sys_tee 342
205 #define __NR_sys_vmsplice 343
209 #define __NR_preadv2 392
211 #ifndef __NR_pwritev2
212 #define __NR_pwritev2 393
215 /* Linux syscalls for mips */
216 #elif defined(ARCH_MIPS64_H)
217 #ifndef __NR_ioprio_set
218 #define __NR_ioprio_set 314
219 #define __NR_ioprio_get 315
222 #ifndef __NR_fadvise64
223 #define __NR_fadvise64 215
226 #ifndef __NR_sys_splice
227 #define __NR_sys_splice 263
228 #define __NR_sys_tee 265
229 #define __NR_sys_vmsplice 266
232 /* Linux syscalls for sh */
233 #elif defined(ARCH_SH_H)
234 #ifndef __NR_ioprio_set
235 #define __NR_ioprio_set 288
236 #define __NR_ioprio_get 289
239 #ifndef __NR_fadvise64
240 #define __NR_fadvise64 250
243 #ifndef __NR_sys_splice
244 #define __NR_sys_splice 313
245 #define __NR_sys_tee 315
246 #define __NR_sys_vmsplice 316
249 /* Linux syscalls for hppa */
250 #elif defined(ARCH_HPPA_H)
251 #ifndef __NR_ioprio_set
252 #define __NR_ioprio_set 267
253 #define __NR_ioprio_get 268
256 #ifndef __NR_fadvise64
257 #define __NR_fadvise64 236
260 #ifndef __NR_sys_splice
261 #define __NR_sys_splice 291
262 #define __NR_sys_tee 293
263 #define __NR_sys_vmsplice 294
266 /* Linux syscalls for aarch64 */
267 #elif defined(ARCH_AARCH64_H)
268 #ifndef __NR_ioprio_set
269 #define __NR_ioprio_set 30
270 #define __NR_ioprio_get 31
273 /* Linux syscalls for loongarch64 */
274 #elif defined(ARCH_LOONGARCH64_H)
275 #ifndef __NR_ioprio_set
276 #define __NR_ioprio_set 30
277 #define __NR_ioprio_get 31
280 #ifndef __NR_fadvise64
281 #define __NR_fadvise64 223
284 #ifndef __NR_sys_splice
285 #define __NR_sys_splice 76
286 #define __NR_sys_tee 77
287 #define __NR_sys_vmsplice 75
290 #warning "Unknown architecture"
293 #endif /* FIO_OS_LINUX_SYSCALL_H */