xref: /linux/kernel/trace/rv/monitors/scpd/scpd.h (revision 1fd1dc41724319406b0aff221a352a400b0ddfc5)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Automatically generated C representation of scpd automaton
4  * For further information about this format, see kernel documentation:
5  *   Documentation/trace/rv/deterministic_automata.rst
6  */
7 
8 #define MONITOR_NAME scpd
9 
10 enum states_scpd {
11 	cant_sched_scpd,
12 	can_sched_scpd,
13 	state_max_scpd,
14 };
15 
16 #define INVALID_STATE state_max_scpd
17 
18 enum events_scpd {
19 	preempt_disable_scpd,
20 	preempt_enable_scpd,
21 	schedule_entry_scpd,
22 	schedule_exit_scpd,
23 	event_max_scpd,
24 };
25 
26 struct automaton_scpd {
27 	char *state_names[state_max_scpd];
28 	char *event_names[event_max_scpd];
29 	unsigned char function[state_max_scpd][event_max_scpd];
30 	unsigned char initial_state;
31 	bool final_states[state_max_scpd];
32 };
33 
34 static const struct automaton_scpd automaton_scpd = {
35 	.state_names = {
36 		"cant_sched",
37 		"can_sched",
38 	},
39 	.event_names = {
40 		"preempt_disable",
41 		"preempt_enable",
42 		"schedule_entry",
43 		"schedule_exit",
44 	},
45 	.function = {
46 		{     can_sched_scpd,     INVALID_STATE,     INVALID_STATE,     INVALID_STATE },
47 		{     INVALID_STATE,    cant_sched_scpd,     can_sched_scpd,     can_sched_scpd },
48 	},
49 	.initial_state = cant_sched_scpd,
50 	.final_states = { 1, 0 },
51 };
52