X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=os%2Fos-linux.h;h=081f5d6c632b57ae322ff93e8d39d5c985b14e9e;hb=f681d0bac9c42e5d6bcb3601d2f3cfaa1c2cefb4;hp=9b7ff29e50af7f07d656cf3e763e7fafe409a669;hpb=eebd2f2d8a022a248acac5685f73665aa0c6ee99;p=fio.git diff --git a/os/os-linux.h b/os/os-linux.h index 9b7ff29e..081f5d6c 100644 --- a/os/os-linux.h +++ b/os/os-linux.h @@ -116,8 +116,31 @@ static inline int fio_cpuset_exit(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); } @@ -191,22 +214,6 @@ static inline long umem_add(unsigned long *uptr, unsigned long inc) } #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