xref: /linux/kernel/trace/rv/monitors/sssw/sssw.h (revision 4ff261e725d7376c12e745fdbe8a33cd6dbd5a83)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Automatically generated C representation of sssw automaton
4  * For further information about this format, see kernel documentation:
5  *   Documentation/trace/rv/deterministic_automata.rst
6  */
7 
8 enum states_sssw {
9 	runnable_sssw = 0,
10 	signal_wakeup_sssw,
11 	sleepable_sssw,
12 	sleeping_sssw,
13 	state_max_sssw
14 };
15 
16 #define INVALID_STATE state_max_sssw
17 
18 enum events_sssw {
19 	sched_set_state_runnable_sssw = 0,
20 	sched_set_state_sleepable_sssw,
21 	sched_switch_blocking_sssw,
22 	sched_switch_in_sssw,
23 	sched_switch_preempt_sssw,
24 	sched_switch_suspend_sssw,
25 	sched_switch_yield_sssw,
26 	sched_wakeup_sssw,
27 	signal_deliver_sssw,
28 	event_max_sssw
29 };
30 
31 struct automaton_sssw {
32 	char *state_names[state_max_sssw];
33 	char *event_names[event_max_sssw];
34 	unsigned char function[state_max_sssw][event_max_sssw];
35 	unsigned char initial_state;
36 	bool final_states[state_max_sssw];
37 };
38 
39 static const struct automaton_sssw automaton_sssw = {
40 	.state_names = {
41 		"runnable",
42 		"signal_wakeup",
43 		"sleepable",
44 		"sleeping"
45 	},
46 	.event_names = {
47 		"sched_set_state_runnable",
48 		"sched_set_state_sleepable",
49 		"sched_switch_blocking",
50 		"sched_switch_in",
51 		"sched_switch_preempt",
52 		"sched_switch_suspend",
53 		"sched_switch_yield",
54 		"sched_wakeup",
55 		"signal_deliver"
56 	},
57 	.function = {
58 		{
59 			runnable_sssw,
60 			sleepable_sssw,
61 			sleeping_sssw,
62 			runnable_sssw,
63 			runnable_sssw,
64 			INVALID_STATE,
65 			runnable_sssw,
66 			runnable_sssw,
67 			runnable_sssw
68 		},
69 		{
70 			INVALID_STATE,
71 			sleepable_sssw,
72 			INVALID_STATE,
73 			signal_wakeup_sssw,
74 			signal_wakeup_sssw,
75 			INVALID_STATE,
76 			signal_wakeup_sssw,
77 			signal_wakeup_sssw,
78 			runnable_sssw
79 		},
80 		{
81 			runnable_sssw,
82 			sleepable_sssw,
83 			sleeping_sssw,
84 			sleepable_sssw,
85 			sleepable_sssw,
86 			sleeping_sssw,
87 			signal_wakeup_sssw,
88 			runnable_sssw,
89 			sleepable_sssw
90 		},
91 		{
92 			INVALID_STATE,
93 			INVALID_STATE,
94 			INVALID_STATE,
95 			INVALID_STATE,
96 			INVALID_STATE,
97 			INVALID_STATE,
98 			INVALID_STATE,
99 			runnable_sssw,
100 			INVALID_STATE
101 		},
102 	},
103 	.initial_state = runnable_sssw,
104 	.final_states = { 1, 0, 0, 0 },
105 };
106