#define FIO_HAVE_ODIRECT
#define FIO_HAVE_HUGETLB
#define FIO_HAVE_RAWBIND
+#define FIO_HAVE_BLKTRACE
#define OS_MAP_ANON (MAP_ANONYMOUS)
#define fadvise(fd, off, len, advice) \
posix_fadvise((fd), (off_t)(off), (len), (advice))
+/*
+ * If you are on an ancient glibc (2.3.2), then define GLIBC_2_3_2 if you want
+ * the affinity helpers to work.
+ */
+#ifndef GLIBC_2_3_2
#define fio_setaffinity(td) \
sched_setaffinity((td)->pid, sizeof((td)->o.cpumask), &(td)->o.cpumask)
#define fio_getaffinity(pid, ptr) \
sched_getaffinity((pid), sizeof(cpu_set_t), (ptr))
+#else
+#define fio_setaffinity(td) \
+ sched_setaffinity((td)->pid, &(td)->o.cpumask)
+#define fio_getaffinity(pid, ptr) \
+ sched_getaffinity((pid), (ptr))
+#endif
static inline int ioprio_set(int which, int who, int ioprio)
{
#define SPLICE_F_GIFT (0x08) /* pages passed in are a gift */
static inline int splice(int fdin, loff_t *off_in, int fdout, loff_t *off_out,
- size_t len, unsigned long flags)
+ size_t len, unsigned int flags)
{
return syscall(__NR_sys_splice, fdin, off_in, fdout, off_out, len, flags);
}
}
#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
return val;
}
-static inline void fio_lookup_raw(dev_t dev, int *majdev, int *mindev)
+static inline int fio_lookup_raw(dev_t dev, int *majdev, int *mindev)
{
struct raw_config_request rq;
int fd;
if (major(dev) != RAW_MAJOR)
- return;
+ return 1;
/*
* we should be able to find /dev/rawctl or /dev/raw/rawctl
if (fd < 0) {
fd = open("/dev/raw/rawctl", O_RDONLY);
if (fd < 0)
- return;
+ return 1;
}
rq.raw_minor = minor(dev);
if (ioctl(fd, RAW_GETBIND, &rq) < 0) {
close(fd);
- return;
+ return 1;
}
close(fd);
*majdev = rq.block_major;
*mindev = rq.block_minor;
+ return 0;
}
#endif