#ifndef FIO_OS_LINUX_H
#define FIO_OS_LINUX_H
+#define FIO_OS os_linux
+
#include <sys/ioctl.h>
#include <sys/uio.h>
#include <sys/syscall.h>
#define FIO_HAVE_RAWBIND
#define FIO_HAVE_BLKTRACE
#define FIO_HAVE_STRSEP
-#define FIO_HAVE_FALLOCATE
#define FIO_HAVE_POSIXAIO_FSYNC
#define FIO_HAVE_PSHARED_MUTEX
#define FIO_HAVE_CL_SIZE
#define FIO_HAVE_BINJECT
#define FIO_HAVE_CLOCK_MONOTONIC
#define FIO_HAVE_GETTID
+#define FIO_USE_GENERIC_INIT_RANDOM_STATE
+#define FIO_HAVE_E4_ENG
/*
* Can only enable this for newer glibcs, or the header and defines are
* missing
*/
#if __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 6
+#define FIO_HAVE_FALLOCATE
+#endif
+#if __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 8
#define FIO_HAVE_LINUX_FALLOCATE
#endif
+#ifdef FIO_HAVE_LINUX_FALLOCATE
+#define FIO_HAVE_FALLOC_ENG
+#endif
+
#ifdef SYNC_FILE_RANGE_WAIT_BEFORE
#define FIO_HAVE_SYNC_FILE_RANGE
#endif
sched_getaffinity((pid), (ptr))
#endif
-#define fio_cpu_clear(mask, cpu) CPU_CLR((cpu), (mask))
-#define fio_cpu_set(mask, cpu) CPU_SET((cpu), (mask))
+#define fio_cpu_clear(mask, cpu) (void) CPU_CLR((cpu), (mask))
+#define fio_cpu_set(mask, cpu) (void) CPU_SET((cpu), (mask))
static inline int fio_cpuset_init(os_cpu_mask_t *mask)
{
#define FIO_MAX_CPUS CPU_SETSIZE
-static inline int ioprio_set(int which, int who, int ioprio)
+enum {
+ IOPRIO_CLASS_NONE,
+ IOPRIO_CLASS_RT,
+ IOPRIO_CLASS_BE,
+ IOPRIO_CLASS_IDLE,
+};
+
+enum {
+ IOPRIO_WHO_PROCESS = 1,
+ IOPRIO_WHO_PGRP,
+ IOPRIO_WHO_USER,
+};
+
+#define IOPRIO_BITS 16
+#define IOPRIO_CLASS_SHIFT 13
+
+static inline int ioprio_set(int which, int who, int ioprio_class, int ioprio)
{
+ /*
+ * If no class is set, assume BE
+ */
+ if (!ioprio_class)
+ ioprio_class = IOPRIO_CLASS_BE;
+
+ ioprio |= ioprio_class << IOPRIO_CLASS_SHIFT;
return syscall(__NR_ioprio_set, which, who, ioprio);
}
}
#endif /* FIO_HAVE_SYSLET */
-enum {
- IOPRIO_CLASS_NONE,
- IOPRIO_CLASS_RT,
- IOPRIO_CLASS_BE,
- IOPRIO_CLASS_IDLE,
-};
-
-enum {
- IOPRIO_WHO_PROCESS = 1,
- IOPRIO_WHO_PGRP,
- IOPRIO_WHO_USER,
-};
-
-#define IOPRIO_BITS 16
-#define IOPRIO_CLASS_SHIFT 13
-
#ifndef BLKGETSIZE64
#define BLKGETSIZE64 _IOR(0x12,114,size_t)
#endif