xref: /linux/kernel/trace/rv/monitors/sts/sts.h (revision 1fd1dc41724319406b0aff221a352a400b0ddfc5)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Automatically generated C representation of sts automaton
4  * For further information about this format, see kernel documentation:
5  *   Documentation/trace/rv/deterministic_automata.rst
6  */
7 
8 #define MONITOR_NAME sts
9 
10 enum states_sts {
11 	can_sched_sts,
12 	cant_sched_sts,
13 	disable_to_switch_sts,
14 	enable_to_exit_sts,
15 	in_irq_sts,
16 	scheduling_sts,
17 	switching_sts,
18 	state_max_sts,
19 };
20 
21 #define INVALID_STATE state_max_sts
22 
23 enum events_sts {
24 	irq_disable_sts,
25 	irq_enable_sts,
26 	irq_entry_sts,
27 	sched_switch_sts,
28 	schedule_entry_sts,
29 	schedule_exit_sts,
30 	event_max_sts,
31 };
32 
33 struct automaton_sts {
34 	char *state_names[state_max_sts];
35 	char *event_names[event_max_sts];
36 	unsigned char function[state_max_sts][event_max_sts];
37 	unsigned char initial_state;
38 	bool final_states[state_max_sts];
39 };
40 
41 static const struct automaton_sts automaton_sts = {
42 	.state_names = {
43 		"can_sched",
44 		"cant_sched",
45 		"disable_to_switch",
46 		"enable_to_exit",
47 		"in_irq",
48 		"scheduling",
49 		"switching",
50 	},
51 	.event_names = {
52 		"irq_disable",
53 		"irq_enable",
54 		"irq_entry",
55 		"sched_switch",
56 		"schedule_entry",
57 		"schedule_exit",
58 	},
59 	.function = {
60 		{
61 			cant_sched_sts,
62 			INVALID_STATE,
63 			INVALID_STATE,
64 			INVALID_STATE,
65 			scheduling_sts,
66 			INVALID_STATE,
67 		},
68 		{
69 			INVALID_STATE,
70 			can_sched_sts,
71 			cant_sched_sts,
72 			INVALID_STATE,
73 			INVALID_STATE,
74 			INVALID_STATE,
75 		},
76 		{
77 			INVALID_STATE,
78 			enable_to_exit_sts,
79 			in_irq_sts,
80 			switching_sts,
81 			INVALID_STATE,
82 			INVALID_STATE,
83 		},
84 		{
85 			enable_to_exit_sts,
86 			enable_to_exit_sts,
87 			enable_to_exit_sts,
88 			INVALID_STATE,
89 			INVALID_STATE,
90 			can_sched_sts,
91 		},
92 		{
93 			INVALID_STATE,
94 			scheduling_sts,
95 			in_irq_sts,
96 			INVALID_STATE,
97 			INVALID_STATE,
98 			INVALID_STATE,
99 		},
100 		{
101 			disable_to_switch_sts,
102 			INVALID_STATE,
103 			INVALID_STATE,
104 			INVALID_STATE,
105 			INVALID_STATE,
106 			INVALID_STATE,
107 		},
108 		{
109 			INVALID_STATE,
110 			enable_to_exit_sts,
111 			INVALID_STATE,
112 			INVALID_STATE,
113 			INVALID_STATE,
114 			INVALID_STATE,
115 		},
116 	},
117 	.initial_state = can_sched_sts,
118 	.final_states = { 1, 0, 0, 0, 0, 0, 0 },
119 };
120