xref: /linux/kernel/trace/rv/monitors/scpd/scpd.h (revision 88221ac0d560700b50493aedc768f728aa585141)
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 enum states_scpd {
9 	cant_sched_scpd = 0,
10 	can_sched_scpd,
11 	state_max_scpd
12 };
13 
14 #define INVALID_STATE state_max_scpd
15 
16 enum events_scpd {
17 	preempt_disable_scpd = 0,
18 	preempt_enable_scpd,
19 	schedule_entry_scpd,
20 	schedule_exit_scpd,
21 	event_max_scpd
22 };
23 
24 struct automaton_scpd {
25 	char *state_names[state_max_scpd];
26 	char *event_names[event_max_scpd];
27 	unsigned char function[state_max_scpd][event_max_scpd];
28 	unsigned char initial_state;
29 	bool final_states[state_max_scpd];
30 };
31 
32 static const struct automaton_scpd automaton_scpd = {
33 	.state_names = {
34 		"cant_sched",
35 		"can_sched"
36 	},
37 	.event_names = {
38 		"preempt_disable",
39 		"preempt_enable",
40 		"schedule_entry",
41 		"schedule_exit"
42 	},
43 	.function = {
44 		{     can_sched_scpd,     INVALID_STATE,     INVALID_STATE,     INVALID_STATE },
45 		{     INVALID_STATE,    cant_sched_scpd,     can_sched_scpd,     can_sched_scpd },
46 	},
47 	.initial_state = cant_sched_scpd,
48 	.final_states = { 1, 0 },
49 };
50