1 /* SPDX-License-Identifier: LGPL-2.1-or-later */ 2 #pragma once 3 4 #include <sched.h> 5 6 /* Match values uses by the kernel internally, as no public header seems to exist. */ 7 8 #ifndef IOPRIO_N_CLASSES 9 # define IOPRIO_N_CLASSES 8 10 #endif 11 12 #ifndef IOPRIO_BE_NR 13 # define IOPRIO_BE_NR 8 14 #endif 15 16 #ifndef IOPRIO_CLASS_NONE 17 # define IOPRIO_CLASS_NONE 0 18 #endif 19 #ifndef IOPRIO_CLASS_RT 20 # define IOPRIO_CLASS_RT 1 21 #endif 22 #ifndef IOPRIO_CLASS_BE 23 # define IOPRIO_CLASS_BE 2 24 #endif 25 #ifndef IOPRIO_CLASS_IDLE 26 # define IOPRIO_CLASS_IDLE 3 27 #endif 28 29 #ifndef IOPRIO_WHO_PROCESS 30 # define IOPRIO_WHO_PROCESS 1 31 #endif 32 #ifndef IOPRIO_WHO_PGRP 33 # define IOPRIO_WHO_PGRP 2 34 #endif 35 #ifndef IOPRIO_WHO_USER 36 # define IOPRIO_WHO_USER 3 37 #endif 38 39 #ifndef IOPRIO_BITS 40 # define IOPRIO_BITS 16 41 #endif 42 #ifndef IOPRIO_N_CLASSES 43 # define IOPRIO_N_CLASSES 8 44 #endif 45 #ifndef IOPRIO_CLASS_SHIFT 46 # define IOPRIO_CLASS_SHIFT 13 47 #endif 48 ioprio_prio_class(int value)49static inline int ioprio_prio_class(int value) { 50 return value >> IOPRIO_CLASS_SHIFT; 51 } 52 ioprio_prio_data(int value)53static inline int ioprio_prio_data(int value) { 54 return value & ((1 << IOPRIO_CLASS_SHIFT) - 1); 55 } 56 ioprio_prio_value(int class,int data)57static inline int ioprio_prio_value(int class, int data) { 58 return (class << IOPRIO_CLASS_SHIFT) | data; 59 } 60