xref: /linux/kernel/trace/rv/monitors/snep/snep.h (revision 88221ac0d560700b50493aedc768f728aa585141)
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 enum states_snep {
9 	non_scheduling_context_snep = 0,
10 	scheduling_contex_snep,
11 	state_max_snep
12 };
13 
14 #define INVALID_STATE state_max_snep
15 
16 enum events_snep {
17 	preempt_disable_snep = 0,
18 	preempt_enable_snep,
19 	schedule_entry_snep,
20 	schedule_exit_snep,
21 	event_max_snep
22 };
23 
24 struct automaton_snep {
25 	char *state_names[state_max_snep];
26 	char *event_names[event_max_snep];
27 	unsigned char function[state_max_snep][event_max_snep];
28 	unsigned char initial_state;
29 	bool final_states[state_max_snep];
30 };
31 
32 static const struct automaton_snep automaton_snep = {
33 	.state_names = {
34 		"non_scheduling_context",
35 		"scheduling_contex"
36 	},
37 	.event_names = {
38 		"preempt_disable",
39 		"preempt_enable",
40 		"schedule_entry",
41 		"schedule_exit"
42 	},
43 	.function = {
44 		{ non_scheduling_context_snep, non_scheduling_context_snep, scheduling_contex_snep,               INVALID_STATE },
45 		{               INVALID_STATE,               INVALID_STATE,          INVALID_STATE, non_scheduling_context_snep },
46 	},
47 	.initial_state = non_scheduling_context_snep,
48 	.final_states = { 1, 0 },
49 };
50