xref: /linux/kernel/trace/rv/monitors/opid/opid.h (revision 1fd1dc41724319406b0aff221a352a400b0ddfc5)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Automatically generated C representation of opid automaton
4  * For further information about this format, see kernel documentation:
5  *   Documentation/trace/rv/deterministic_automata.rst
6  */
7 
8 #define MONITOR_NAME opid
9 
10 enum states_opid {
11 	disabled_opid,
12 	enabled_opid,
13 	in_irq_opid,
14 	irq_disabled_opid,
15 	preempt_disabled_opid,
16 	state_max_opid,
17 };
18 
19 #define INVALID_STATE state_max_opid
20 
21 enum events_opid {
22 	irq_disable_opid,
23 	irq_enable_opid,
24 	irq_entry_opid,
25 	preempt_disable_opid,
26 	preempt_enable_opid,
27 	sched_need_resched_opid,
28 	sched_waking_opid,
29 	event_max_opid,
30 };
31 
32 struct automaton_opid {
33 	char *state_names[state_max_opid];
34 	char *event_names[event_max_opid];
35 	unsigned char function[state_max_opid][event_max_opid];
36 	unsigned char initial_state;
37 	bool final_states[state_max_opid];
38 };
39 
40 static const struct automaton_opid automaton_opid = {
41 	.state_names = {
42 		"disabled",
43 		"enabled",
44 		"in_irq",
45 		"irq_disabled",
46 		"preempt_disabled",
47 	},
48 	.event_names = {
49 		"irq_disable",
50 		"irq_enable",
51 		"irq_entry",
52 		"preempt_disable",
53 		"preempt_enable",
54 		"sched_need_resched",
55 		"sched_waking",
56 	},
57 	.function = {
58 		{
59 			INVALID_STATE,
60 			preempt_disabled_opid,
61 			disabled_opid,
62 			INVALID_STATE,
63 			irq_disabled_opid,
64 			disabled_opid,
65 			disabled_opid,
66 		},
67 		{
68 			irq_disabled_opid,
69 			INVALID_STATE,
70 			INVALID_STATE,
71 			preempt_disabled_opid,
72 			enabled_opid,
73 			INVALID_STATE,
74 			INVALID_STATE,
75 		},
76 		{
77 			INVALID_STATE,
78 			enabled_opid,
79 			in_irq_opid,
80 			INVALID_STATE,
81 			INVALID_STATE,
82 			in_irq_opid,
83 			in_irq_opid,
84 		},
85 		{
86 			INVALID_STATE,
87 			enabled_opid,
88 			in_irq_opid,
89 			disabled_opid,
90 			INVALID_STATE,
91 			irq_disabled_opid,
92 			INVALID_STATE,
93 		},
94 		{
95 			disabled_opid,
96 			INVALID_STATE,
97 			INVALID_STATE,
98 			INVALID_STATE,
99 			enabled_opid,
100 			INVALID_STATE,
101 			INVALID_STATE,
102 		},
103 	},
104 	.initial_state = disabled_opid,
105 	.final_states = { 0, 1, 0, 0, 0 },
106 };
107