]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/basic/missing_ioprio.h
Fix reference to FileDescriptorStoreMax= directive
[thirdparty/systemd.git] / src / basic / missing_ioprio.h
CommitLineData
5bead76e
ZJS
1/* SPDX-License-Identifier: LGPL-2.1-or-later */
2#pragma once
3
7258971b
ZJS
4#if HAVE_LINUX_IOPRIO_H
5# include <linux/ioprio.h>
6#endif
5bead76e 7
4d6437d3
ZJS
8#include "macro.h"
9
5bead76e
ZJS
10/* Match values uses by the kernel internally, as no public header seems to exist. */
11
12#ifndef IOPRIO_N_CLASSES
13# define IOPRIO_N_CLASSES 8
4d6437d3
ZJS
14#else
15assert_cc(IOPRIO_N_CLASSES == 8);
5bead76e
ZJS
16#endif
17
18#ifndef IOPRIO_BE_NR
19# define IOPRIO_BE_NR 8
4d6437d3
ZJS
20#else
21assert_cc(IOPRIO_BE_NR == 8);
5bead76e
ZJS
22#endif
23
24#ifndef IOPRIO_CLASS_NONE
25# define IOPRIO_CLASS_NONE 0
4d6437d3
ZJS
26#else
27assert_cc(IOPRIO_CLASS_NONE == 0);
5bead76e
ZJS
28#endif
29#ifndef IOPRIO_CLASS_RT
30# define IOPRIO_CLASS_RT 1
4d6437d3
ZJS
31#else
32assert_cc(IOPRIO_CLASS_RT == 1);
5bead76e
ZJS
33#endif
34#ifndef IOPRIO_CLASS_BE
35# define IOPRIO_CLASS_BE 2
4d6437d3
ZJS
36#else
37assert_cc(IOPRIO_CLASS_BE == 2);
5bead76e
ZJS
38#endif
39#ifndef IOPRIO_CLASS_IDLE
40# define IOPRIO_CLASS_IDLE 3
4d6437d3
ZJS
41#else
42assert_cc(IOPRIO_CLASS_IDLE == 3);
5bead76e
ZJS
43#endif
44
45#ifndef IOPRIO_WHO_PROCESS
46# define IOPRIO_WHO_PROCESS 1
4d6437d3
ZJS
47#else
48assert_cc(IOPRIO_WHO_PROCESS == 1);
5bead76e 49#endif
4d6437d3 50
5bead76e
ZJS
51#ifndef IOPRIO_WHO_PGRP
52# define IOPRIO_WHO_PGRP 2
4d6437d3
ZJS
53#else
54assert_cc(IOPRIO_WHO_PGRP == 2);
5bead76e 55#endif
4d6437d3 56
5bead76e
ZJS
57#ifndef IOPRIO_WHO_USER
58# define IOPRIO_WHO_USER 3
4d6437d3
ZJS
59#else
60assert_cc(IOPRIO_WHO_USER == 3);
5bead76e
ZJS
61#endif
62
63#ifndef IOPRIO_BITS
64# define IOPRIO_BITS 16
4d6437d3
ZJS
65#else
66assert_cc(IOPRIO_BITS == 16);
5bead76e 67#endif
4d6437d3 68
5bead76e
ZJS
69#ifndef IOPRIO_N_CLASSES
70# define IOPRIO_N_CLASSES 8
4d6437d3
ZJS
71#else
72assert_cc(IOPRIO_N_CLASSES == 8);
5bead76e 73#endif
4d6437d3 74
5bead76e
ZJS
75#ifndef IOPRIO_CLASS_SHIFT
76# define IOPRIO_CLASS_SHIFT 13
4d6437d3
ZJS
77#else
78assert_cc(IOPRIO_CLASS_SHIFT == 13);
5bead76e
ZJS
79#endif
80
81static inline int ioprio_prio_class(int value) {
82 return value >> IOPRIO_CLASS_SHIFT;
83}
84
85static inline int ioprio_prio_data(int value) {
86 return value & ((1 << IOPRIO_CLASS_SHIFT) - 1);
87}
88
89static inline int ioprio_prio_value(int class, int data) {
90 return (class << IOPRIO_CLASS_SHIFT) | data;
91}