Add os/os-linux-syscall.h to separate syscall NR from arch headers
authorTomohiro Kusumi <kusumi.tomohiro@gmail.com>
Tue, 19 Jul 2016 16:33:47 +0000 (01:33 +0900)
committerJens Axboe <axboe@fb.com>
Tue, 19 Jul 2016 21:45:49 +0000 (15:45 -0600)
Linux syscall NR should be defined under os/ with ifdef(arch)
switch rather than arch/ where headers are included not only by
Linux but also all other supported OS that don't need these NR.
(It'll get worse and worse if someone wants to add something
similar under arch/ for other supported OS)

Not sure if you like the way I separated these by adding
os/os-linux-syscall.h, but doing something like
 #if FIO_OS is (Linux or Android)
 ...
 #endif
in arch/arch-*.h doesn't work because arch headers are to be
included prior to os/os-*.h.

Signed-off-by: Tomohiro Kusumi <kusumi.tomohiro@gmail.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
15 files changed:
arch/arch-aarch64.h
arch/arch-alpha.h
arch/arch-arm.h
arch/arch-hppa.h
arch/arch-ia64.h
arch/arch-mips.h
arch/arch-ppc.h
arch/arch-s390.h
arch/arch-sh.h
arch/arch-sparc.h
arch/arch-sparc64.h
arch/arch-x86.h
arch/arch-x86_64.h
os/os-linux-syscall.h [new file with mode: 0644]
os/os-linux.h

index a6cfaf250202d7cd03a7985aec89f725fb62e38a..2a86cc5ab4d9b9cb1bef2dcf5d0aab24bfc38fb8 100644 (file)
@@ -8,11 +8,6 @@
 
 #define FIO_ARCH       (arch_aarch64)
 
-#ifndef __NR_ioprio_set
-#define __NR_ioprio_set                30
-#define __NR_ioprio_get                31
-#endif
-
 #define nop            do { __asm__ __volatile__ ("yield"); } while (0)
 #define read_barrier() do { __sync_synchronize(); } while (0)
 #define write_barrier()        do { __sync_synchronize(); } while (0)
index c0f784f287baa2787da007a402c2880c98912071..9318e15db9f3283e1e2241808c207cc471f9fbe8 100644 (file)
@@ -3,21 +3,6 @@
 
 #define FIO_ARCH       (arch_alpha)
 
-#ifndef __NR_ioprio_set
-#define __NR_ioprio_set                442
-#define __NR_ioprio_get                443
-#endif
-
-#ifndef __NR_fadvise64
-#define __NR_fadvise64         413
-#endif
-
-#ifndef __NR_sys_splice
-#define __NR_sys_splice                468
-#define __NR_sys_tee           470
-#define __NR_sys_vmsplice      471
-#endif
-
 #define nop                    do { } while (0)
 #define read_barrier()         __asm__ __volatile__("mb": : :"memory")
 #define write_barrier()                __asm__ __volatile__("wmb": : :"memory")
index 57d948813abe04c406e5eaaf8a62b98d9f58d355..31671fdbe7283ba9007c8c25901dde1cc776aad5 100644 (file)
@@ -3,28 +3,6 @@
 
 #define FIO_ARCH       (arch_arm)
 
-#ifndef __NR_ioprio_set
-#define __NR_ioprio_set                314
-#define __NR_ioprio_get                315
-#endif
-
-#ifndef __NR_fadvise64
-#define __NR_fadvise64         270
-#endif
-
-#ifndef __NR_sys_splice
-#define __NR_sys_splice                340
-#define __NR_sys_tee           342
-#define __NR_sys_vmsplice      343
-#endif
-
-#ifndef __NR_preadv2
-#define __NR_preadv2           392
-#endif
-#ifndef __NR_pwritev2
-#define __NR_pwritev2          393
-#endif
-
 #if defined (__ARM_ARCH_4__) || defined (__ARM_ARCH_4T__) \
        || defined (__ARM_ARCH_5__) || defined (__ARM_ARCH_5T__) || defined (__ARM_ARCH_5E__)\
        || defined (__ARM_ARCH_5TE__) || defined (__ARM_ARCH_5TEJ__) \
index c1c079ed0165757c51e7a2be6c156f60d65a2698..eb4fc3334eb527f5e06a476d2e4660c254822709 100644 (file)
@@ -3,21 +3,6 @@
 
 #define FIO_ARCH       (arch_hppa)
 
-#ifndef __NR_ioprio_set
-#define __NR_ioprio_set                267
-#define __NR_ioprio_get                268
-#endif
-
-#ifndef __NR_fadvise64
-#define __NR_fadvise64         236
-#endif
-
-#ifndef __NR_sys_splice
-#define __NR_sys_splice                291
-#define __NR_sys_tee           293
-#define __NR_sys_vmsplice      294
-#endif
-
 #define nop    do { } while (0)
 
 #define read_barrier() __asm__ __volatile__ ("" : : : "memory")
index 7cdeefcf16ae8cd60153e9d096e508c36aee2574..53c049fdf1866f11f4ddd517a8b9deaa2326dcc4 100644 (file)
@@ -3,28 +3,6 @@
 
 #define FIO_ARCH       (arch_ia64)
 
-#ifndef __NR_ioprio_set
-#define __NR_ioprio_set                1274
-#define __NR_ioprio_get                1275
-#endif
-
-#ifndef __NR_fadvise64
-#define __NR_fadvise64         1234
-#endif
-
-#ifndef __NR_sys_splice
-#define __NR_sys_splice                1297
-#define __NR_sys_tee           1301
-#define __NR_sys_vmsplice      1302
-#endif
-
-#ifndef __NR_preadv2
-#define __NR_preadv2           1348
-#endif
-#ifndef __NR_pwritev2
-#define __NR_pwritev2          1349
-#endif
-
 #define nop            asm volatile ("hint @pause" ::: "memory");
 #define read_barrier() asm volatile ("mf" ::: "memory")
 #define write_barrier()        asm volatile ("mf" ::: "memory")
index 0b781d1dad3d794b2a7c8363d95112f4a5e46fd0..6f157fbb19a30ccba3992930d7154877a7457c35 100644 (file)
@@ -3,21 +3,6 @@
 
 #define FIO_ARCH       (arch_mips)
 
-#ifndef __NR_ioprio_set
-#define __NR_ioprio_set                314
-#define __NR_ioprio_get                315
-#endif
-
-#ifndef __NR_fadvise64
-#define __NR_fadvise64         215
-#endif
-
-#ifndef __NR_sys_splice
-#define __NR_sys_splice                263
-#define __NR_sys_tee           265
-#define __NR_sys_vmsplice      266
-#endif
-
 #define read_barrier()         __asm__ __volatile__("": : :"memory")
 #define write_barrier()                __asm__ __volatile__("": : :"memory")
 #define nop                    __asm__ __volatile__("": : :"memory")
index 161c39c511937c9a0d4604a69fa3f63da1825f26..4a8aa97c4d9dbc01bd427e6c49e10fefbe5c41ac 100644 (file)
@@ -8,21 +8,6 @@
 
 #define FIO_ARCH       (arch_ppc)
 
-#ifndef __NR_ioprio_set
-#define __NR_ioprio_set                273
-#define __NR_ioprio_get                274
-#endif
-
-#ifndef __NR_fadvise64
-#define __NR_fadvise64         233
-#endif
-
-#ifndef __NR_sys_splice
-#define __NR_sys_splice                283
-#define __NR_sys_tee           284
-#define __NR_sys_vmsplice      285
-#endif
-
 #define nop    do { } while (0)
 
 #ifdef __powerpc64__
index 71beb7d67fcd6766909c1496985ace34bb9dbb6d..2e84bf8ad45744ec6d74c7ed09918d83565f9c32 100644 (file)
@@ -3,28 +3,6 @@
 
 #define FIO_ARCH       (arch_s390)
 
-#ifndef __NR_ioprio_set
-#define __NR_ioprio_set                282
-#define __NR_ioprio_get                283
-#endif
-
-#ifndef __NR_fadvise64
-#define __NR_fadvise64         253
-#endif
-
-#ifndef __NR_sys_splice
-#define __NR_sys_splice                306
-#define __NR_sys_tee           308
-#define __NR_sys_vmsplice      309
-#endif
-
-#ifndef __NR_preadv2
-#define __NR_preadv2           376
-#endif
-#ifndef __NR_pwritev2
-#define __NR_pwritev2          377
-#endif
-
 #define nop            asm volatile("nop" : : : "memory")
 #define read_barrier() asm volatile("bcr 15,0" : : : "memory")
 #define write_barrier()        asm volatile("bcr 15,0" : : : "memory")
index 9acbbbee9c3fe3e0a93c146e2c3e161817f0a78a..58ff22652ca833782b4f42254c87ba601883aa85 100644 (file)
@@ -5,21 +5,6 @@
 
 #define FIO_ARCH       (arch_sh)
 
-#ifndef __NR_ioprio_set
-#define __NR_ioprio_set        288
-#define __NR_ioprio_get        289
-#endif
-
-#ifndef __NR_fadvise64
-#define __NR_fadvise64 250
-#endif
-
-#ifndef __NR_sys_splice
-#define __NR_sys_splice                313
-#define __NR_sys_tee           315
-#define __NR_sys_vmsplice      316
-#endif
-
 #define nop             __asm__ __volatile__ ("nop": : :"memory")
 
 #define mb()                                                           \
index d0df8831b5d86c22db580c7fa752310d80c6ffef..f82a1f238317931a596b37fab0bc7b6b610c16f8 100644 (file)
@@ -3,28 +3,6 @@
 
 #define FIO_ARCH       (arch_sparc)
 
-#ifndef __NR_ioprio_set
-#define __NR_ioprio_set                196
-#define __NR_ioprio_get                218
-#endif
-
-#ifndef __NR_fadvise64
-#define __NR_fadvise64         209
-#endif
-
-#ifndef __NR_sys_splice
-#define __NR_sys_splice                232
-#define __NR_sys_tee           280
-#define __NR_sys_vmsplice      25
-#endif
-
-#ifndef __NR_preadv2
-#define __NR_preadv2           358
-#endif
-#ifndef __NR_pwritev2
-#define __NR_pwritev2          359
-#endif
-
 #define nop    do { } while (0)
 
 #define read_barrier() __asm__ __volatile__ ("" : : : "memory")
index 5c4e64908b63d4e312ced131acd05bfc4165fcda..80c697bc49ad2322d115427ad813381e76d2ae6c 100644 (file)
@@ -3,28 +3,6 @@
 
 #define FIO_ARCH       (arch_sparc64)
 
-#ifndef __NR_ioprio_set
-#define __NR_ioprio_set                196
-#define __NR_ioprio_get                218
-#endif
-
-#ifndef __NR_fadvise64
-#define __NR_fadvise64         209
-#endif
-
-#ifndef __NR_sys_splice
-#define __NR_sys_splice                232
-#define __NR_sys_tee           280
-#define __NR_sys_vmsplice      25
-#endif
-
-#ifndef __NR_preadv2
-#define __NR_preadv2           358
-#endif
-#ifndef __NR_pwritev2
-#define __NR_pwritev2          359
-#endif
-
 #define nop    do { } while (0)
 
 #define membar_safe(type) \
index 9471a891c9f0db5ad0cf8fa616e2f4c687fec1dd..d3b8985683a86c6a9a09bbb17dda211ce49db71b 100644 (file)
@@ -14,28 +14,6 @@ static inline void do_cpuid(unsigned int *eax, unsigned int *ebx,
 
 #define FIO_ARCH       (arch_i386)
 
-#ifndef __NR_ioprio_set
-#define __NR_ioprio_set                289
-#define __NR_ioprio_get                290
-#endif
-
-#ifndef __NR_fadvise64
-#define __NR_fadvise64         250
-#endif
-
-#ifndef __NR_sys_splice
-#define __NR_sys_splice                313
-#define __NR_sys_tee           315
-#define __NR_sys_vmsplice      316
-#endif
-
-#ifndef __NR_preadv2
-#define __NR_preadv2           378
-#endif
-#ifndef __NR_pwritev2
-#define __NR_pwritev2          379
-#endif
-
 #define        FIO_HUGE_PAGE           4194304
 
 #define nop            __asm__ __volatile__("rep;nop": : :"memory")
index a0e8c039c1478ca1d7a24a86e043151f413bd715..e686d109e762998fbbfbf2c40d8d857ee2ce47ad 100644 (file)
@@ -14,36 +14,6 @@ static inline void do_cpuid(unsigned int *eax, unsigned int *ebx,
 
 #define FIO_ARCH       (arch_x86_64)
 
-#ifndef __NR_ioprio_set
-#define __NR_ioprio_set                251
-#define __NR_ioprio_get                252
-#endif
-
-#ifndef __NR_fadvise64
-#define __NR_fadvise64         221
-#endif
-
-#ifndef __NR_sys_splice
-#define __NR_sys_splice                275
-#define __NR_sys_tee           276
-#define __NR_sys_vmsplice      278
-#endif
-
-#ifndef __NR_shmget
-#define __NR_shmget             29
-#define __NR_shmat              30
-#define __NR_shmctl             31
-#define __NR_shmdt              67
-#endif
-
-#ifndef __NR_preadv2
-#define __NR_preadv2           327
-#endif
-#ifndef __NR_pwritev2
-#define __NR_pwritev2          328
-#endif
-
-
 #define        FIO_HUGE_PAGE           2097152
 
 #define nop            __asm__ __volatile__("rep;nop": : :"memory")
diff --git a/os/os-linux-syscall.h b/os/os-linux-syscall.h
new file mode 100644 (file)
index 0000000..2de02f1
--- /dev/null
@@ -0,0 +1,277 @@
+#ifndef FIO_OS_LINUX_SYSCALL_H
+#define FIO_OS_LINUX_SYSCALL_H
+
+#include "../arch/arch.h"
+
+/* Linux syscalls for i386 */
+#if defined(ARCH_X86_H)
+#ifndef __NR_ioprio_set
+#define __NR_ioprio_set                289
+#define __NR_ioprio_get                290
+#endif
+
+#ifndef __NR_fadvise64
+#define __NR_fadvise64         250
+#endif
+
+#ifndef __NR_sys_splice
+#define __NR_sys_splice                313
+#define __NR_sys_tee           315
+#define __NR_sys_vmsplice      316
+#endif
+
+#ifndef __NR_preadv2
+#define __NR_preadv2           378
+#endif
+#ifndef __NR_pwritev2
+#define __NR_pwritev2          379
+#endif
+
+/* Linux syscalls for x86_64 */
+#elif defined(ARCH_X86_64_H)
+#ifndef __NR_ioprio_set
+#define __NR_ioprio_set                251
+#define __NR_ioprio_get                252
+#endif
+
+#ifndef __NR_fadvise64
+#define __NR_fadvise64         221
+#endif
+
+#ifndef __NR_sys_splice
+#define __NR_sys_splice                275
+#define __NR_sys_tee           276
+#define __NR_sys_vmsplice      278
+#endif
+
+#ifndef __NR_shmget
+#define __NR_shmget             29
+#define __NR_shmat              30
+#define __NR_shmctl             31
+#define __NR_shmdt              67
+#endif
+
+#ifndef __NR_preadv2
+#define __NR_preadv2           327
+#endif
+#ifndef __NR_pwritev2
+#define __NR_pwritev2          328
+#endif
+
+/* Linux syscalls for ppc */
+#elif defined(ARCH_PPC_H)
+#ifndef __NR_ioprio_set
+#define __NR_ioprio_set                273
+#define __NR_ioprio_get                274
+#endif
+
+#ifndef __NR_fadvise64
+#define __NR_fadvise64         233
+#endif
+
+#ifndef __NR_sys_splice
+#define __NR_sys_splice                283
+#define __NR_sys_tee           284
+#define __NR_sys_vmsplice      285
+#endif
+
+/* Linux syscalls for ia64 */
+#elif defined(ARCH_IA64_H)
+#ifndef __NR_ioprio_set
+#define __NR_ioprio_set                1274
+#define __NR_ioprio_get                1275
+#endif
+
+#ifndef __NR_fadvise64
+#define __NR_fadvise64         1234
+#endif
+
+#ifndef __NR_sys_splice
+#define __NR_sys_splice                1297
+#define __NR_sys_tee           1301
+#define __NR_sys_vmsplice      1302
+#endif
+
+#ifndef __NR_preadv2
+#define __NR_preadv2           1348
+#endif
+#ifndef __NR_pwritev2
+#define __NR_pwritev2          1349
+#endif
+
+/* Linux syscalls for alpha */
+#elif defined(ARCH_ALPHA_H)
+#ifndef __NR_ioprio_set
+#define __NR_ioprio_set                442
+#define __NR_ioprio_get                443
+#endif
+
+#ifndef __NR_fadvise64
+#define __NR_fadvise64         413
+#endif
+
+#ifndef __NR_sys_splice
+#define __NR_sys_splice                468
+#define __NR_sys_tee           470
+#define __NR_sys_vmsplice      471
+#endif
+
+/* Linux syscalls for s390 */
+#elif defined(ARCH_S390_H)
+#ifndef __NR_ioprio_set
+#define __NR_ioprio_set                282
+#define __NR_ioprio_get                283
+#endif
+
+#ifndef __NR_fadvise64
+#define __NR_fadvise64         253
+#endif
+
+#ifndef __NR_sys_splice
+#define __NR_sys_splice                306
+#define __NR_sys_tee           308
+#define __NR_sys_vmsplice      309
+#endif
+
+#ifndef __NR_preadv2
+#define __NR_preadv2           376
+#endif
+#ifndef __NR_pwritev2
+#define __NR_pwritev2          377
+#endif
+
+/* Linux syscalls for sparc */
+#elif defined(ARCH_SPARC_H)
+#ifndef __NR_ioprio_set
+#define __NR_ioprio_set                196
+#define __NR_ioprio_get                218
+#endif
+
+#ifndef __NR_fadvise64
+#define __NR_fadvise64         209
+#endif
+
+#ifndef __NR_sys_splice
+#define __NR_sys_splice                232
+#define __NR_sys_tee           280
+#define __NR_sys_vmsplice      25
+#endif
+
+#ifndef __NR_preadv2
+#define __NR_preadv2           358
+#endif
+#ifndef __NR_pwritev2
+#define __NR_pwritev2          359
+#endif
+
+/* Linux syscalls for sparc64 */
+#elif defined(ARCH_SPARC64_H)
+#ifndef __NR_ioprio_set
+#define __NR_ioprio_set                196
+#define __NR_ioprio_get                218
+#endif
+
+#ifndef __NR_fadvise64
+#define __NR_fadvise64         209
+#endif
+
+#ifndef __NR_sys_splice
+#define __NR_sys_splice                232
+#define __NR_sys_tee           280
+#define __NR_sys_vmsplice      25
+#endif
+
+#ifndef __NR_preadv2
+#define __NR_preadv2           358
+#endif
+#ifndef __NR_pwritev2
+#define __NR_pwritev2          359
+#endif
+
+/* Linux syscalls for arm */
+#elif defined(ARCH_ARM_H)
+#ifndef __NR_ioprio_set
+#define __NR_ioprio_set                314
+#define __NR_ioprio_get                315
+#endif
+
+#ifndef __NR_fadvise64
+#define __NR_fadvise64         270
+#endif
+
+#ifndef __NR_sys_splice
+#define __NR_sys_splice                340
+#define __NR_sys_tee           342
+#define __NR_sys_vmsplice      343
+#endif
+
+#ifndef __NR_preadv2
+#define __NR_preadv2           392
+#endif
+#ifndef __NR_pwritev2
+#define __NR_pwritev2          393
+#endif
+
+/* Linux syscalls for mips */
+#elif defined(ARCH_MIPS64_H)
+#ifndef __NR_ioprio_set
+#define __NR_ioprio_set                314
+#define __NR_ioprio_get                315
+#endif
+
+#ifndef __NR_fadvise64
+#define __NR_fadvise64         215
+#endif
+
+#ifndef __NR_sys_splice
+#define __NR_sys_splice                263
+#define __NR_sys_tee           265
+#define __NR_sys_vmsplice      266
+#endif
+
+/* Linux syscalls for sh */
+#elif defined(ARCH_SH_H)
+#ifndef __NR_ioprio_set
+#define __NR_ioprio_set                288
+#define __NR_ioprio_get                289
+#endif
+
+#ifndef __NR_fadvise64
+#define __NR_fadvise64         250
+#endif
+
+#ifndef __NR_sys_splice
+#define __NR_sys_splice                313
+#define __NR_sys_tee           315
+#define __NR_sys_vmsplice      316
+#endif
+
+/* Linux syscalls for hppa */
+#elif defined(ARCH_HPPA_H)
+#ifndef __NR_ioprio_set
+#define __NR_ioprio_set                267
+#define __NR_ioprio_get                268
+#endif
+
+#ifndef __NR_fadvise64
+#define __NR_fadvise64         236
+#endif
+
+#ifndef __NR_sys_splice
+#define __NR_sys_splice                291
+#define __NR_sys_tee           293
+#define __NR_sys_vmsplice      294
+#endif
+
+/* Linux syscalls for aarch64 */
+#elif defined(ARCH_AARCH64_H)
+#ifndef __NR_ioprio_set
+#define __NR_ioprio_set                30
+#define __NR_ioprio_get                31
+#endif
+
+#else
+#warning "Unknown architecture"
+#endif
+
+#endif /* FIO_OS_LINUX_SYSCALL_H */
index 937aade9ddfab48d8567d88653e1c9cc0e0833be..06235abc0976e7107abc1da941138867afb32dd6 100644 (file)
@@ -18,6 +18,7 @@
 #include <linux/major.h>
 #include <byteswap.h>
 
+#include "./os-linux-syscall.h"
 #include "binject.h"
 #include "../file.h"