1use crate::compat::read_enum;
8
9#[derive(Debug)]
10#[allow(non_snake_case)]
11pub struct Enums {
12 pub SCX_OPS_NAME_LEN: u64,
13 pub SCX_SLICE_DFL: u64,
14 pub SCX_SLICE_INF: u64,
15 pub SCX_RQ_ONLINE: u64,
16 pub SCX_RQ_CAN_STOP_TICK: u64,
17 pub SCX_RQ_BAL_PENDING: u64,
18 pub SCX_RQ_BAL_KEEP: u64,
19 pub SCX_RQ_BYPASSING: u64,
20 pub SCX_RQ_CLK_VALID: u64,
21 pub SCX_RQ_IN_WAKEUP: u64,
22 pub SCX_RQ_IN_BALANCE: u64,
23 pub SCX_DSQ_FLAG_BUILTIN: u64,
24 pub SCX_DSQ_FLAG_LOCAL_ON: u64,
25 pub SCX_DSQ_INVALID: u64,
26 pub SCX_DSQ_GLOBAL: u64,
27 pub SCX_DSQ_LOCAL: u64,
28 pub SCX_DSQ_LOCAL_ON: u64,
29 pub SCX_DSQ_LOCAL_CPU_MASK: u64,
30 pub SCX_TASK_QUEUED: u64,
31 pub SCX_TASK_RESET_RUNNABLE_AT: u64,
32 pub SCX_TASK_DEQD_FOR_SLEEP: u64,
33 pub SCX_TASK_STATE_SHIFT: u64,
34 pub SCX_TASK_STATE_BITS: u64,
35 pub SCX_TASK_STATE_MASK: u64,
36 pub SCX_TASK_CURSOR: u64,
37 pub SCX_TASK_NONE: u64,
38 pub SCX_TASK_INIT: u64,
39 pub SCX_TASK_READY: u64,
40 pub SCX_TASK_ENABLED: u64,
41 pub SCX_TASK_NR_STATES: u64,
42 pub SCX_TASK_DSQ_ON_PRIQ: u64,
43 pub SCX_KICK_IDLE: u64,
44 pub SCX_KICK_PREEMPT: u64,
45 pub SCX_KICK_WAIT: u64,
46 pub SCX_ENQ_WAKEUP: u64,
47 pub SCX_ENQ_HEAD: u64,
48 pub SCX_ENQ_PREEMPT: u64,
49 pub SCX_ENQ_REENQ: u64,
50 pub SCX_ENQ_LAST: u64,
51 pub SCX_ENQ_CLEAR_OPSS: u64,
52 pub SCX_ENQ_DSQ_PRIQ: u64,
53}
54
55lazy_static::lazy_static! {
56 pub static ref scx_enums: Enums = Enums {
57 SCX_OPS_NAME_LEN: read_enum("scx_public_consts","SCX_OPS_NAME_LEN").unwrap_or(0),
58 SCX_SLICE_DFL: read_enum("scx_public_consts","SCX_SLICE_DFL").unwrap_or(0),
59 SCX_SLICE_INF: read_enum("scx_public_consts","SCX_SLICE_INF").unwrap_or(0),
60 SCX_RQ_ONLINE: read_enum("scx_rq_flags","SCX_RQ_ONLINE").unwrap_or(0),
61 SCX_RQ_CAN_STOP_TICK: read_enum("scx_rq_flags","SCX_RQ_CAN_STOP_TICK").unwrap_or(0),
62 SCX_RQ_BAL_PENDING: read_enum("scx_rq_flags","SCX_RQ_BAL_PENDING").unwrap_or(0),
63 SCX_RQ_BAL_KEEP: read_enum("scx_rq_flags","SCX_RQ_BAL_KEEP").unwrap_or(0),
64 SCX_RQ_BYPASSING: read_enum("scx_rq_flags","SCX_RQ_BYPASSING").unwrap_or(0),
65 SCX_RQ_CLK_VALID: read_enum("scx_rq_flags","SCX_RQ_CLK_VALID").unwrap_or(0),
66 SCX_RQ_IN_WAKEUP: read_enum("scx_rq_flags","SCX_RQ_IN_WAKEUP").unwrap_or(0),
67 SCX_RQ_IN_BALANCE: read_enum("scx_rq_flags","SCX_RQ_IN_BALANCE").unwrap_or(0),
68 SCX_DSQ_FLAG_BUILTIN: read_enum("scx_dsq_id_flags","SCX_DSQ_FLAG_BUILTIN").unwrap_or(0),
69 SCX_DSQ_FLAG_LOCAL_ON: read_enum("scx_dsq_id_flags","SCX_DSQ_FLAG_LOCAL_ON").unwrap_or(0),
70 SCX_DSQ_INVALID: read_enum("scx_dsq_id_flags","SCX_DSQ_INVALID").unwrap_or(0),
71 SCX_DSQ_GLOBAL: read_enum("scx_dsq_id_flags","SCX_DSQ_GLOBAL").unwrap_or(0),
72 SCX_DSQ_LOCAL: read_enum("scx_dsq_id_flags","SCX_DSQ_LOCAL").unwrap_or(0),
73 SCX_DSQ_LOCAL_ON: read_enum("scx_dsq_id_flags","SCX_DSQ_LOCAL_ON").unwrap_or(0),
74 SCX_DSQ_LOCAL_CPU_MASK: read_enum("scx_dsq_id_flags","SCX_DSQ_LOCAL_CPU_MASK").unwrap_or(0),
75 SCX_TASK_QUEUED: read_enum("scx_ent_flags","SCX_TASK_QUEUED").unwrap_or(0),
76 SCX_TASK_RESET_RUNNABLE_AT: read_enum("scx_ent_flags","SCX_TASK_RESET_RUNNABLE_AT").unwrap_or(0),
77 SCX_TASK_DEQD_FOR_SLEEP: read_enum("scx_ent_flags","SCX_TASK_DEQD_FOR_SLEEP").unwrap_or(0),
78 SCX_TASK_STATE_SHIFT: read_enum("scx_ent_flags","SCX_TASK_STATE_SHIFT").unwrap_or(0),
79 SCX_TASK_STATE_BITS: read_enum("scx_ent_flags","SCX_TASK_STATE_BITS").unwrap_or(0),
80 SCX_TASK_STATE_MASK: read_enum("scx_ent_flags","SCX_TASK_STATE_MASK").unwrap_or(0),
81 SCX_TASK_CURSOR: read_enum("scx_ent_flags","SCX_TASK_CURSOR").unwrap_or(0),
82 SCX_TASK_NONE: read_enum("scx_task_state","SCX_TASK_NONE").unwrap_or(0),
83 SCX_TASK_INIT: read_enum("scx_task_state","SCX_TASK_INIT").unwrap_or(0),
84 SCX_TASK_READY: read_enum("scx_task_state","SCX_TASK_READY").unwrap_or(0),
85 SCX_TASK_ENABLED: read_enum("scx_task_state","SCX_TASK_ENABLED").unwrap_or(0),
86 SCX_TASK_NR_STATES: read_enum("scx_task_state","SCX_TASK_NR_STATES").unwrap_or(0),
87 SCX_TASK_DSQ_ON_PRIQ: read_enum("scx_ent_dsq_flags","SCX_TASK_DSQ_ON_PRIQ").unwrap_or(0),
88 SCX_KICK_IDLE: read_enum("scx_kick_flags","SCX_KICK_IDLE").unwrap_or(0),
89 SCX_KICK_PREEMPT: read_enum("scx_kick_flags","SCX_KICK_PREEMPT").unwrap_or(0),
90 SCX_KICK_WAIT: read_enum("scx_kick_flags","SCX_KICK_WAIT").unwrap_or(0),
91 SCX_ENQ_WAKEUP: read_enum("scx_enq_flags","SCX_ENQ_WAKEUP").unwrap_or(0),
92 SCX_ENQ_HEAD: read_enum("scx_enq_flags","SCX_ENQ_HEAD").unwrap_or(0),
93 SCX_ENQ_PREEMPT: read_enum("scx_enq_flags","SCX_ENQ_PREEMPT").unwrap_or(0),
94 SCX_ENQ_REENQ: read_enum("scx_enq_flags","SCX_ENQ_REENQ").unwrap_or(0),
95 SCX_ENQ_LAST: read_enum("scx_enq_flags","SCX_ENQ_LAST").unwrap_or(0),
96 SCX_ENQ_CLEAR_OPSS: read_enum("scx_enq_flags","SCX_ENQ_CLEAR_OPSS").unwrap_or(0),
97 SCX_ENQ_DSQ_PRIQ: read_enum("scx_enq_flags","SCX_ENQ_DSQ_PRIQ").unwrap_or(0),
98 };
99}
100
101#[rustfmt::skip]
102#[macro_export]
103macro_rules! import_enums {
104 ($skel: ident) => { 'block : {
105 $skel.maps.rodata_data.__SCX_OPS_NAME_LEN = $crate::scx_enums.SCX_OPS_NAME_LEN;
106 $skel.maps.rodata_data.__SCX_SLICE_DFL = $crate::scx_enums.SCX_SLICE_DFL;
107 $skel.maps.rodata_data.__SCX_SLICE_INF = $crate::scx_enums.SCX_SLICE_INF;
108 $skel.maps.rodata_data.__SCX_RQ_ONLINE = $crate::scx_enums.SCX_RQ_ONLINE;
109 $skel.maps.rodata_data.__SCX_RQ_CAN_STOP_TICK = $crate::scx_enums.SCX_RQ_CAN_STOP_TICK;
110 $skel.maps.rodata_data.__SCX_RQ_BAL_PENDING = $crate::scx_enums.SCX_RQ_BAL_PENDING;
111 $skel.maps.rodata_data.__SCX_RQ_BAL_KEEP = $crate::scx_enums.SCX_RQ_BAL_KEEP;
112 $skel.maps.rodata_data.__SCX_RQ_BYPASSING = $crate::scx_enums.SCX_RQ_BYPASSING;
113 $skel.maps.rodata_data.__SCX_RQ_CLK_VALID = $crate::scx_enums.SCX_RQ_CLK_VALID;
114 $skel.maps.rodata_data.__SCX_RQ_IN_WAKEUP = $crate::scx_enums.SCX_RQ_IN_WAKEUP;
115 $skel.maps.rodata_data.__SCX_RQ_IN_BALANCE = $crate::scx_enums.SCX_RQ_IN_BALANCE;
116 $skel.maps.rodata_data.__SCX_DSQ_FLAG_BUILTIN = $crate::scx_enums.SCX_DSQ_FLAG_BUILTIN;
117 $skel.maps.rodata_data.__SCX_DSQ_FLAG_LOCAL_ON = $crate::scx_enums.SCX_DSQ_FLAG_LOCAL_ON;
118 $skel.maps.rodata_data.__SCX_DSQ_INVALID = $crate::scx_enums.SCX_DSQ_INVALID;
119 $skel.maps.rodata_data.__SCX_DSQ_GLOBAL = $crate::scx_enums.SCX_DSQ_GLOBAL;
120 $skel.maps.rodata_data.__SCX_DSQ_LOCAL = $crate::scx_enums.SCX_DSQ_LOCAL;
121 $skel.maps.rodata_data.__SCX_DSQ_LOCAL_ON = $crate::scx_enums.SCX_DSQ_LOCAL_ON;
122 $skel.maps.rodata_data.__SCX_DSQ_LOCAL_CPU_MASK = $crate::scx_enums.SCX_DSQ_LOCAL_CPU_MASK;
123 $skel.maps.rodata_data.__SCX_TASK_QUEUED = $crate::scx_enums.SCX_TASK_QUEUED;
124 $skel.maps.rodata_data.__SCX_TASK_RESET_RUNNABLE_AT = $crate::scx_enums.SCX_TASK_RESET_RUNNABLE_AT;
125 $skel.maps.rodata_data.__SCX_TASK_DEQD_FOR_SLEEP = $crate::scx_enums.SCX_TASK_DEQD_FOR_SLEEP;
126 $skel.maps.rodata_data.__SCX_TASK_STATE_SHIFT = $crate::scx_enums.SCX_TASK_STATE_SHIFT;
127 $skel.maps.rodata_data.__SCX_TASK_STATE_BITS = $crate::scx_enums.SCX_TASK_STATE_BITS;
128 $skel.maps.rodata_data.__SCX_TASK_STATE_MASK = $crate::scx_enums.SCX_TASK_STATE_MASK;
129 $skel.maps.rodata_data.__SCX_TASK_CURSOR = $crate::scx_enums.SCX_TASK_CURSOR;
130 $skel.maps.rodata_data.__SCX_TASK_NONE = $crate::scx_enums.SCX_TASK_NONE;
131 $skel.maps.rodata_data.__SCX_TASK_INIT = $crate::scx_enums.SCX_TASK_INIT;
132 $skel.maps.rodata_data.__SCX_TASK_READY = $crate::scx_enums.SCX_TASK_READY;
133 $skel.maps.rodata_data.__SCX_TASK_ENABLED = $crate::scx_enums.SCX_TASK_ENABLED;
134 $skel.maps.rodata_data.__SCX_TASK_NR_STATES = $crate::scx_enums.SCX_TASK_NR_STATES;
135 $skel.maps.rodata_data.__SCX_TASK_DSQ_ON_PRIQ = $crate::scx_enums.SCX_TASK_DSQ_ON_PRIQ;
136 $skel.maps.rodata_data.__SCX_KICK_IDLE = $crate::scx_enums.SCX_KICK_IDLE;
137 $skel.maps.rodata_data.__SCX_KICK_PREEMPT = $crate::scx_enums.SCX_KICK_PREEMPT;
138 $skel.maps.rodata_data.__SCX_KICK_WAIT = $crate::scx_enums.SCX_KICK_WAIT;
139 $skel.maps.rodata_data.__SCX_ENQ_WAKEUP = $crate::scx_enums.SCX_ENQ_WAKEUP;
140 $skel.maps.rodata_data.__SCX_ENQ_HEAD = $crate::scx_enums.SCX_ENQ_HEAD;
141 $skel.maps.rodata_data.__SCX_ENQ_PREEMPT = $crate::scx_enums.SCX_ENQ_PREEMPT;
142 $skel.maps.rodata_data.__SCX_ENQ_REENQ = $crate::scx_enums.SCX_ENQ_REENQ;
143 $skel.maps.rodata_data.__SCX_ENQ_LAST = $crate::scx_enums.SCX_ENQ_LAST;
144 $skel.maps.rodata_data.__SCX_ENQ_CLEAR_OPSS = $crate::scx_enums.SCX_ENQ_CLEAR_OPSS;
145 $skel.maps.rodata_data.__SCX_ENQ_DSQ_PRIQ = $crate::scx_enums.SCX_ENQ_DSQ_PRIQ;
146 }};
147}