xref: /linux/kernel/trace/rv/monitors/snep/snep.h (revision 1fd1dc41724319406b0aff221a352a400b0ddfc5)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Automatically generated C representation of snep automaton
4  * For further information about this format, see kernel documentation:
5  *   Documentation/trace/rv/deterministic_automata.rst
6  */
7 
8 #define MONITOR_NAME snep
9 
10 enum states_snep {
11 	non_scheduling_context_snep,
12 	scheduling_contex_snep,
13 	state_max_snep,
14 };
15 
16 #define INVALID_STATE state_max_snep
17 
18 enum events_snep {
19 	preempt_disable_snep,
20 	preempt_enable_snep,
21 	schedule_entry_snep,
22 	schedule_exit_snep,
23 	event_max_snep,
24 };
25 
26 struct automaton_snep {
27 	char *state_names[state_max_snep];
28 	char *event_names[event_max_snep];
29 	unsigned char function[state_max_snep][event_max_snep];
30 	unsigned char initial_state;
31 	bool final_states[state_max_snep];
32 };
33 
34 static const struct automaton_snep automaton_snep = {
35 	.state_names = {
36 		"non_scheduling_context",
37 		"scheduling_contex",
38 	},
39 	.event_names = {
40 		"preempt_disable",
41 		"preempt_enable",
42 		"schedule_entry",
43 		"schedule_exit",
44 	},
45 	.function = {
46 		{
47 			non_scheduling_context_snep,
48 			non_scheduling_context_snep,
49 			scheduling_contex_snep,
50 			INVALID_STATE,
51 		},
52 		{
53 			INVALID_STATE,
54 			INVALID_STATE,
55 			INVALID_STATE,
56 			non_scheduling_context_snep,
57 		},
58 	},
59 	.initial_state = non_scheduling_context_snep,
60 	.final_states = { 1, 0 },
61 };
62