18#ifndef _COBALT_UAPI_SCHED_H
19#define _COBALT_UAPI_SCHED_H
21#include <cobalt/uapi/kernel/types.h>
23#define SCHED_COBALT 42
27#define SCHED_SPORADIC 10
28#define sched_ss_low_priority sched_u.ss.__sched_low_priority
29#define sched_ss_repl_period sched_u.ss.__sched_repl_period
30#define sched_ss_init_budget sched_u.ss.__sched_init_budget
31#define sched_ss_max_repl sched_u.ss.__sched_max_repl
34struct __sched_ss_param {
35 __s32 __sched_low_priority;
37 struct xn_ts64 __sched_repl_period;
38 struct xn_ts64 __sched_init_budget;
39 __s32 __sched_max_repl;
43#define sched_rr_quantum sched_u.rr.__sched_rr_quantum
45struct __sched_rr_param {
46 struct xn_ts64 __sched_rr_quantum;
51#define sched_tp_partition sched_u.tp.__sched_partition
54struct __sched_tp_param {
55 __s32 __sched_partition;
58struct sched_tp_window {
59 struct xn_ts64 offset;
60 struct xn_ts64 duration;
72struct __sched_config_tp {
75 struct sched_tp_window windows[0];
78#define sched_tp_confsz(nr_win) \
79 (sizeof(struct __sched_config_tp) + nr_win * sizeof(struct sched_tp_window))
83#define sched_quota_group sched_u.quota.__sched_group
86struct __sched_quota_param {
93 sched_quota_force_remove,
98struct __sched_config_quota {
116 struct __sched_quota_info {
124#define sched_quota_confsz() sizeof(struct __sched_config_quota)
126struct sched_param_ex {
127 __s32 sched_priority;
130 struct __sched_ss_param ss;
131 struct __sched_rr_param rr;
132 struct __sched_tp_param tp;
133 struct __sched_quota_param quota;
138 struct __sched_config_tp tp;
139 struct __sched_config_quota quota;