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