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