diff options
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/linux/sys.txt | 28 | ||||
| -rw-r--r-- | sys/linux/sys_386.const | 8 | ||||
| -rw-r--r-- | sys/linux/sys_amd64.const | 8 | ||||
| -rw-r--r-- | sys/linux/sys_arm.const | 8 | ||||
| -rw-r--r-- | sys/linux/sys_arm64.const | 8 | ||||
| -rw-r--r-- | sys/linux/sys_mips64le.const | 8 | ||||
| -rw-r--r-- | sys/linux/sys_ppc64le.const | 8 | ||||
| -rw-r--r-- | sys/linux/sys_riscv64.const | 8 | ||||
| -rw-r--r-- | sys/linux/sys_s390x.const | 8 |
9 files changed, 90 insertions, 2 deletions
diff --git a/sys/linux/sys.txt b/sys/linux/sys.txt index d9ea9c672..4f1b2d5f9 100644 --- a/sys/linux/sys.txt +++ b/sys/linux/sys.txt @@ -387,8 +387,32 @@ iopl(level int8) ioperm(from intptr, num intptr, on intptr) ioprio_get$pid(which flags[ioprio_which_pid], who pid) ioprio_get$uid(which flags[ioprio_which_uid], who uid) -ioprio_set$pid(which flags[ioprio_which_pid], who pid, prio intptr) -ioprio_set$uid(which flags[ioprio_which_uid], who uid, prio intptr) +ioprio_set$pid(which flags[ioprio_which_pid], who pid, ioprio flags[ioprio_priorities]) +ioprio_set$uid(which flags[ioprio_which_uid], who uid, ioprio flags[ioprio_priorities]) + +# NEED: we can express the construction of integers using structs with flags +# and bitfields, which are normally obtained using a combination of bitwise +# operations with the help of macros. However, structs can't be directly passed +# as a syscall argument; therefore, such constructions can't be directly passed either. +# One example is ioprio argument for ioprio_set, where we could have expressed the +# construction less messy. For now, some subset of valid values are enumerated as +# in ioprio_priorities. + +# ioprio priority values are obtained using IOPRIO_PRIO_VALUE(class, data) macro. +# the behaviour of the macro is mimicked below and some priority values are enumerated. +ioprio_priorities = IOPRIO_CLASS_NONE_PRIO, IOPRIO_CLASS_IDLE_PRIO, IOPRIO_CLASS_RT_HIGH_PRIO, IOPRIO_CLASS_BE_HIGH_PRIO, IOPRIO_CLASS_RT_MID_PRIO, IOPRIO_CLASS_BE_MID_PRIO, IOPRIO_CLASS_RT_LOW_PRIO, IOPRIO_CLASS_BE_LOW_PRIO + +# The classes RT and BE take data values from the range [0:7]. Use a subset of the available +# values (0, 4, 7) to ease collisions, and to avoid redundancy. The classes NONE and IDLE +# have only one valid priority value each with data set to 0. +define IOPRIO_CLASS_NONE_PRIO (IOPRIO_CLASS_NONE << IOPRIO_CLASS_SHIFT) +define IOPRIO_CLASS_IDLE_PRIO (IOPRIO_CLASS_IDLE << IOPRIO_CLASS_SHIFT) +define IOPRIO_CLASS_RT_HIGH_PRIO (IOPRIO_CLASS_RT << IOPRIO_CLASS_SHIFT) +define IOPRIO_CLASS_BE_HIGH_PRIO (IOPRIO_CLASS_BE << IOPRIO_CLASS_SHIFT) +define IOPRIO_CLASS_RT_MID_PRIO ((IOPRIO_CLASS_RT << IOPRIO_CLASS_SHIFT) + 4) +define IOPRIO_CLASS_BE_MID_PRIO ((IOPRIO_CLASS_BE << IOPRIO_CLASS_SHIFT) + 4) +define IOPRIO_CLASS_RT_LOW_PRIO ((IOPRIO_CLASS_RT << IOPRIO_CLASS_SHIFT) + 7) +define IOPRIO_CLASS_BE_LOW_PRIO ((IOPRIO_CLASS_BE << IOPRIO_CLASS_SHIFT) + 7) resource timerid[int32] timer_create(id flags[clock_id], ev ptr[in, sigevent], timerid ptr[out, timerid]) diff --git a/sys/linux/sys_386.const b/sys/linux/sys_386.const index b0c406746..d1999e9f6 100644 --- a/sys/linux/sys_386.const +++ b/sys/linux/sys_386.const @@ -181,6 +181,14 @@ F_UNLCK = 2 F_WRLCK = 1 GRND_NONBLOCK = 1 GRND_RANDOM = 2 +IOPRIO_CLASS_BE_HIGH_PRIO = 16384 +IOPRIO_CLASS_BE_LOW_PRIO = 16391 +IOPRIO_CLASS_BE_MID_PRIO = 16388 +IOPRIO_CLASS_IDLE_PRIO = 24576 +IOPRIO_CLASS_NONE_PRIO = 0 +IOPRIO_CLASS_RT_HIGH_PRIO = 8192 +IOPRIO_CLASS_RT_LOW_PRIO = 8199 +IOPRIO_CLASS_RT_MID_PRIO = 8196 IOPRIO_WHO_PGRP = 2 IOPRIO_WHO_PROCESS = 1 IOPRIO_WHO_USER = 3 diff --git a/sys/linux/sys_amd64.const b/sys/linux/sys_amd64.const index f7e18e962..08eb22ff7 100644 --- a/sys/linux/sys_amd64.const +++ b/sys/linux/sys_amd64.const @@ -181,6 +181,14 @@ F_UNLCK = 2 F_WRLCK = 1 GRND_NONBLOCK = 1 GRND_RANDOM = 2 +IOPRIO_CLASS_BE_HIGH_PRIO = 16384 +IOPRIO_CLASS_BE_LOW_PRIO = 16391 +IOPRIO_CLASS_BE_MID_PRIO = 16388 +IOPRIO_CLASS_IDLE_PRIO = 24576 +IOPRIO_CLASS_NONE_PRIO = 0 +IOPRIO_CLASS_RT_HIGH_PRIO = 8192 +IOPRIO_CLASS_RT_LOW_PRIO = 8199 +IOPRIO_CLASS_RT_MID_PRIO = 8196 IOPRIO_WHO_PGRP = 2 IOPRIO_WHO_PROCESS = 1 IOPRIO_WHO_USER = 3 diff --git a/sys/linux/sys_arm.const b/sys/linux/sys_arm.const index a00cff597..f84722518 100644 --- a/sys/linux/sys_arm.const +++ b/sys/linux/sys_arm.const @@ -181,6 +181,14 @@ F_UNLCK = 2 F_WRLCK = 1 GRND_NONBLOCK = 1 GRND_RANDOM = 2 +IOPRIO_CLASS_BE_HIGH_PRIO = 16384 +IOPRIO_CLASS_BE_LOW_PRIO = 16391 +IOPRIO_CLASS_BE_MID_PRIO = 16388 +IOPRIO_CLASS_IDLE_PRIO = 24576 +IOPRIO_CLASS_NONE_PRIO = 0 +IOPRIO_CLASS_RT_HIGH_PRIO = 8192 +IOPRIO_CLASS_RT_LOW_PRIO = 8199 +IOPRIO_CLASS_RT_MID_PRIO = 8196 IOPRIO_WHO_PGRP = 2 IOPRIO_WHO_PROCESS = 1 IOPRIO_WHO_USER = 3 diff --git a/sys/linux/sys_arm64.const b/sys/linux/sys_arm64.const index ce695043b..6ad56e240 100644 --- a/sys/linux/sys_arm64.const +++ b/sys/linux/sys_arm64.const @@ -181,6 +181,14 @@ F_UNLCK = 2 F_WRLCK = 1 GRND_NONBLOCK = 1 GRND_RANDOM = 2 +IOPRIO_CLASS_BE_HIGH_PRIO = 16384 +IOPRIO_CLASS_BE_LOW_PRIO = 16391 +IOPRIO_CLASS_BE_MID_PRIO = 16388 +IOPRIO_CLASS_IDLE_PRIO = 24576 +IOPRIO_CLASS_NONE_PRIO = 0 +IOPRIO_CLASS_RT_HIGH_PRIO = 8192 +IOPRIO_CLASS_RT_LOW_PRIO = 8199 +IOPRIO_CLASS_RT_MID_PRIO = 8196 IOPRIO_WHO_PGRP = 2 IOPRIO_WHO_PROCESS = 1 IOPRIO_WHO_USER = 3 diff --git a/sys/linux/sys_mips64le.const b/sys/linux/sys_mips64le.const index cf0471269..2d5503b38 100644 --- a/sys/linux/sys_mips64le.const +++ b/sys/linux/sys_mips64le.const @@ -181,6 +181,14 @@ F_UNLCK = 2 F_WRLCK = 1 GRND_NONBLOCK = 1 GRND_RANDOM = 2 +IOPRIO_CLASS_BE_HIGH_PRIO = 16384 +IOPRIO_CLASS_BE_LOW_PRIO = 16391 +IOPRIO_CLASS_BE_MID_PRIO = 16388 +IOPRIO_CLASS_IDLE_PRIO = 24576 +IOPRIO_CLASS_NONE_PRIO = 0 +IOPRIO_CLASS_RT_HIGH_PRIO = 8192 +IOPRIO_CLASS_RT_LOW_PRIO = 8199 +IOPRIO_CLASS_RT_MID_PRIO = 8196 IOPRIO_WHO_PGRP = 2 IOPRIO_WHO_PROCESS = 1 IOPRIO_WHO_USER = 3 diff --git a/sys/linux/sys_ppc64le.const b/sys/linux/sys_ppc64le.const index 95f9b1376..3915e89e5 100644 --- a/sys/linux/sys_ppc64le.const +++ b/sys/linux/sys_ppc64le.const @@ -181,6 +181,14 @@ F_UNLCK = 2 F_WRLCK = 1 GRND_NONBLOCK = 1 GRND_RANDOM = 2 +IOPRIO_CLASS_BE_HIGH_PRIO = 16384 +IOPRIO_CLASS_BE_LOW_PRIO = 16391 +IOPRIO_CLASS_BE_MID_PRIO = 16388 +IOPRIO_CLASS_IDLE_PRIO = 24576 +IOPRIO_CLASS_NONE_PRIO = 0 +IOPRIO_CLASS_RT_HIGH_PRIO = 8192 +IOPRIO_CLASS_RT_LOW_PRIO = 8199 +IOPRIO_CLASS_RT_MID_PRIO = 8196 IOPRIO_WHO_PGRP = 2 IOPRIO_WHO_PROCESS = 1 IOPRIO_WHO_USER = 3 diff --git a/sys/linux/sys_riscv64.const b/sys/linux/sys_riscv64.const index ebaf2f0a8..55b6a2abd 100644 --- a/sys/linux/sys_riscv64.const +++ b/sys/linux/sys_riscv64.const @@ -181,6 +181,14 @@ F_UNLCK = 2 F_WRLCK = 1 GRND_NONBLOCK = 1 GRND_RANDOM = 2 +IOPRIO_CLASS_BE_HIGH_PRIO = 16384 +IOPRIO_CLASS_BE_LOW_PRIO = 16391 +IOPRIO_CLASS_BE_MID_PRIO = 16388 +IOPRIO_CLASS_IDLE_PRIO = 24576 +IOPRIO_CLASS_NONE_PRIO = 0 +IOPRIO_CLASS_RT_HIGH_PRIO = 8192 +IOPRIO_CLASS_RT_LOW_PRIO = 8199 +IOPRIO_CLASS_RT_MID_PRIO = 8196 IOPRIO_WHO_PGRP = 2 IOPRIO_WHO_PROCESS = 1 IOPRIO_WHO_USER = 3 diff --git a/sys/linux/sys_s390x.const b/sys/linux/sys_s390x.const index f0f759e7f..1227daba1 100644 --- a/sys/linux/sys_s390x.const +++ b/sys/linux/sys_s390x.const @@ -181,6 +181,14 @@ F_UNLCK = 2 F_WRLCK = 1 GRND_NONBLOCK = 1 GRND_RANDOM = 2 +IOPRIO_CLASS_BE_HIGH_PRIO = 16384 +IOPRIO_CLASS_BE_LOW_PRIO = 16391 +IOPRIO_CLASS_BE_MID_PRIO = 16388 +IOPRIO_CLASS_IDLE_PRIO = 24576 +IOPRIO_CLASS_NONE_PRIO = 0 +IOPRIO_CLASS_RT_HIGH_PRIO = 8192 +IOPRIO_CLASS_RT_LOW_PRIO = 8199 +IOPRIO_CLASS_RT_MID_PRIO = 8196 IOPRIO_WHO_PGRP = 2 IOPRIO_WHO_PROCESS = 1 IOPRIO_WHO_USER = 3 |
