xref: /linux/kernel/trace/rv/monitors/nomiss/nomiss.h (revision fdbfee9fc56e13a1307868829d438ad66ab308a4)
1*b133207dSGabriele Monaco /* SPDX-License-Identifier: GPL-2.0 */
2*b133207dSGabriele Monaco /*
3*b133207dSGabriele Monaco  * Automatically generated C representation of nomiss automaton
4*b133207dSGabriele Monaco  * For further information about this format, see kernel documentation:
5*b133207dSGabriele Monaco  *   Documentation/trace/rv/deterministic_automata.rst
6*b133207dSGabriele Monaco  */
7*b133207dSGabriele Monaco 
8*b133207dSGabriele Monaco #define MONITOR_NAME nomiss
9*b133207dSGabriele Monaco 
10*b133207dSGabriele Monaco enum states_nomiss {
11*b133207dSGabriele Monaco 	ready_nomiss,
12*b133207dSGabriele Monaco 	idle_nomiss,
13*b133207dSGabriele Monaco 	running_nomiss,
14*b133207dSGabriele Monaco 	sleeping_nomiss,
15*b133207dSGabriele Monaco 	throttled_nomiss,
16*b133207dSGabriele Monaco 	state_max_nomiss,
17*b133207dSGabriele Monaco };
18*b133207dSGabriele Monaco 
19*b133207dSGabriele Monaco #define INVALID_STATE state_max_nomiss
20*b133207dSGabriele Monaco 
21*b133207dSGabriele Monaco enum events_nomiss {
22*b133207dSGabriele Monaco 	dl_replenish_nomiss,
23*b133207dSGabriele Monaco 	dl_server_idle_nomiss,
24*b133207dSGabriele Monaco 	dl_server_stop_nomiss,
25*b133207dSGabriele Monaco 	dl_throttle_nomiss,
26*b133207dSGabriele Monaco 	sched_switch_in_nomiss,
27*b133207dSGabriele Monaco 	sched_switch_suspend_nomiss,
28*b133207dSGabriele Monaco 	sched_wakeup_nomiss,
29*b133207dSGabriele Monaco 	event_max_nomiss,
30*b133207dSGabriele Monaco };
31*b133207dSGabriele Monaco 
32*b133207dSGabriele Monaco enum envs_nomiss {
33*b133207dSGabriele Monaco 	clk_nomiss,
34*b133207dSGabriele Monaco 	is_constr_dl_nomiss,
35*b133207dSGabriele Monaco 	is_defer_nomiss,
36*b133207dSGabriele Monaco 	env_max_nomiss,
37*b133207dSGabriele Monaco 	env_max_stored_nomiss = is_constr_dl_nomiss,
38*b133207dSGabriele Monaco };
39*b133207dSGabriele Monaco 
40*b133207dSGabriele Monaco _Static_assert(env_max_stored_nomiss <= MAX_HA_ENV_LEN, "Not enough slots");
41*b133207dSGabriele Monaco #define HA_CLK_NS
42*b133207dSGabriele Monaco 
43*b133207dSGabriele Monaco struct automaton_nomiss {
44*b133207dSGabriele Monaco 	char *state_names[state_max_nomiss];
45*b133207dSGabriele Monaco 	char *event_names[event_max_nomiss];
46*b133207dSGabriele Monaco 	char *env_names[env_max_nomiss];
47*b133207dSGabriele Monaco 	unsigned char function[state_max_nomiss][event_max_nomiss];
48*b133207dSGabriele Monaco 	unsigned char initial_state;
49*b133207dSGabriele Monaco 	bool final_states[state_max_nomiss];
50*b133207dSGabriele Monaco };
51*b133207dSGabriele Monaco 
52*b133207dSGabriele Monaco static const struct automaton_nomiss automaton_nomiss = {
53*b133207dSGabriele Monaco 	.state_names = {
54*b133207dSGabriele Monaco 		"ready",
55*b133207dSGabriele Monaco 		"idle",
56*b133207dSGabriele Monaco 		"running",
57*b133207dSGabriele Monaco 		"sleeping",
58*b133207dSGabriele Monaco 		"throttled",
59*b133207dSGabriele Monaco 	},
60*b133207dSGabriele Monaco 	.event_names = {
61*b133207dSGabriele Monaco 		"dl_replenish",
62*b133207dSGabriele Monaco 		"dl_server_idle",
63*b133207dSGabriele Monaco 		"dl_server_stop",
64*b133207dSGabriele Monaco 		"dl_throttle",
65*b133207dSGabriele Monaco 		"sched_switch_in",
66*b133207dSGabriele Monaco 		"sched_switch_suspend",
67*b133207dSGabriele Monaco 		"sched_wakeup",
68*b133207dSGabriele Monaco 	},
69*b133207dSGabriele Monaco 	.env_names = {
70*b133207dSGabriele Monaco 		"clk",
71*b133207dSGabriele Monaco 		"is_constr_dl",
72*b133207dSGabriele Monaco 		"is_defer",
73*b133207dSGabriele Monaco 	},
74*b133207dSGabriele Monaco 	.function = {
75*b133207dSGabriele Monaco 		{
76*b133207dSGabriele Monaco 			ready_nomiss,
77*b133207dSGabriele Monaco 			idle_nomiss,
78*b133207dSGabriele Monaco 			sleeping_nomiss,
79*b133207dSGabriele Monaco 			throttled_nomiss,
80*b133207dSGabriele Monaco 			running_nomiss,
81*b133207dSGabriele Monaco 			INVALID_STATE,
82*b133207dSGabriele Monaco 			ready_nomiss,
83*b133207dSGabriele Monaco 		},
84*b133207dSGabriele Monaco 		{
85*b133207dSGabriele Monaco 			ready_nomiss,
86*b133207dSGabriele Monaco 			idle_nomiss,
87*b133207dSGabriele Monaco 			sleeping_nomiss,
88*b133207dSGabriele Monaco 			throttled_nomiss,
89*b133207dSGabriele Monaco 			running_nomiss,
90*b133207dSGabriele Monaco 			INVALID_STATE,
91*b133207dSGabriele Monaco 			INVALID_STATE,
92*b133207dSGabriele Monaco 		},
93*b133207dSGabriele Monaco 		{
94*b133207dSGabriele Monaco 			running_nomiss,
95*b133207dSGabriele Monaco 			idle_nomiss,
96*b133207dSGabriele Monaco 			sleeping_nomiss,
97*b133207dSGabriele Monaco 			throttled_nomiss,
98*b133207dSGabriele Monaco 			running_nomiss,
99*b133207dSGabriele Monaco 			sleeping_nomiss,
100*b133207dSGabriele Monaco 			running_nomiss,
101*b133207dSGabriele Monaco 		},
102*b133207dSGabriele Monaco 		{
103*b133207dSGabriele Monaco 			ready_nomiss,
104*b133207dSGabriele Monaco 			sleeping_nomiss,
105*b133207dSGabriele Monaco 			sleeping_nomiss,
106*b133207dSGabriele Monaco 			throttled_nomiss,
107*b133207dSGabriele Monaco 			running_nomiss,
108*b133207dSGabriele Monaco 			INVALID_STATE,
109*b133207dSGabriele Monaco 			ready_nomiss,
110*b133207dSGabriele Monaco 		},
111*b133207dSGabriele Monaco 		{
112*b133207dSGabriele Monaco 			ready_nomiss,
113*b133207dSGabriele Monaco 			throttled_nomiss,
114*b133207dSGabriele Monaco 			INVALID_STATE,
115*b133207dSGabriele Monaco 			throttled_nomiss,
116*b133207dSGabriele Monaco 			INVALID_STATE,
117*b133207dSGabriele Monaco 			throttled_nomiss,
118*b133207dSGabriele Monaco 			throttled_nomiss,
119*b133207dSGabriele Monaco 		},
120*b133207dSGabriele Monaco 	},
121*b133207dSGabriele Monaco 	.initial_state = ready_nomiss,
122*b133207dSGabriele Monaco 	.final_states = { 1, 0, 0, 0, 0 },
123*b133207dSGabriele Monaco };
124