xref: /linux/tools/verification/rvgen/tests/golden/ha_percpu/ha_percpu.h (revision 55ee4b931a7ffedc886175d265dd6e6d08fd4151)
1*655d4809SGabriele Monaco /* SPDX-License-Identifier: GPL-2.0 */
2*655d4809SGabriele Monaco /*
3*655d4809SGabriele Monaco  * Automatically generated C representation of ha_percpu automaton
4*655d4809SGabriele Monaco  * For further information about this format, see kernel documentation:
5*655d4809SGabriele Monaco  *   Documentation/trace/rv/deterministic_automata.rst
6*655d4809SGabriele Monaco  */
7*655d4809SGabriele Monaco 
8*655d4809SGabriele Monaco #define MONITOR_NAME ha_percpu
9*655d4809SGabriele Monaco 
10*655d4809SGabriele Monaco enum states_ha_percpu {
11*655d4809SGabriele Monaco 	S0_ha_percpu,
12*655d4809SGabriele Monaco 	S1_ha_percpu,
13*655d4809SGabriele Monaco 	S2_ha_percpu,
14*655d4809SGabriele Monaco 	S3_ha_percpu,
15*655d4809SGabriele Monaco 	state_max_ha_percpu,
16*655d4809SGabriele Monaco };
17*655d4809SGabriele Monaco 
18*655d4809SGabriele Monaco #define INVALID_STATE state_max_ha_percpu
19*655d4809SGabriele Monaco 
20*655d4809SGabriele Monaco enum events_ha_percpu {
21*655d4809SGabriele Monaco 	event0_ha_percpu,
22*655d4809SGabriele Monaco 	event1_ha_percpu,
23*655d4809SGabriele Monaco 	event2_ha_percpu,
24*655d4809SGabriele Monaco 	event_max_ha_percpu,
25*655d4809SGabriele Monaco };
26*655d4809SGabriele Monaco 
27*655d4809SGabriele Monaco enum envs_ha_percpu {
28*655d4809SGabriele Monaco 	clk_ha_percpu,
29*655d4809SGabriele Monaco 	env1_ha_percpu,
30*655d4809SGabriele Monaco 	env2_ha_percpu,
31*655d4809SGabriele Monaco 	env_max_ha_percpu,
32*655d4809SGabriele Monaco 	env_max_stored_ha_percpu = env1_ha_percpu,
33*655d4809SGabriele Monaco };
34*655d4809SGabriele Monaco 
35*655d4809SGabriele Monaco _Static_assert(env_max_stored_ha_percpu <= MAX_HA_ENV_LEN, "Not enough slots");
36*655d4809SGabriele Monaco #define HA_CLK_NS
37*655d4809SGabriele Monaco 
38*655d4809SGabriele Monaco struct automaton_ha_percpu {
39*655d4809SGabriele Monaco 	char *state_names[state_max_ha_percpu];
40*655d4809SGabriele Monaco 	char *event_names[event_max_ha_percpu];
41*655d4809SGabriele Monaco 	char *env_names[env_max_ha_percpu];
42*655d4809SGabriele Monaco 	unsigned char function[state_max_ha_percpu][event_max_ha_percpu];
43*655d4809SGabriele Monaco 	unsigned char initial_state;
44*655d4809SGabriele Monaco 	bool final_states[state_max_ha_percpu];
45*655d4809SGabriele Monaco };
46*655d4809SGabriele Monaco 
47*655d4809SGabriele Monaco static const struct automaton_ha_percpu automaton_ha_percpu = {
48*655d4809SGabriele Monaco 	.state_names = {
49*655d4809SGabriele Monaco 		"S0",
50*655d4809SGabriele Monaco 		"S1",
51*655d4809SGabriele Monaco 		"S2",
52*655d4809SGabriele Monaco 		"S3",
53*655d4809SGabriele Monaco 	},
54*655d4809SGabriele Monaco 	.event_names = {
55*655d4809SGabriele Monaco 		"event0",
56*655d4809SGabriele Monaco 		"event1",
57*655d4809SGabriele Monaco 		"event2",
58*655d4809SGabriele Monaco 	},
59*655d4809SGabriele Monaco 	.env_names = {
60*655d4809SGabriele Monaco 		"clk",
61*655d4809SGabriele Monaco 		"env1",
62*655d4809SGabriele Monaco 		"env2",
63*655d4809SGabriele Monaco 	},
64*655d4809SGabriele Monaco 	.function = {
65*655d4809SGabriele Monaco 		{            S0_ha_percpu,            S1_ha_percpu,           INVALID_STATE },
66*655d4809SGabriele Monaco 		{            S0_ha_percpu,           INVALID_STATE,            S2_ha_percpu },
67*655d4809SGabriele Monaco 		{           INVALID_STATE,            S2_ha_percpu,            S3_ha_percpu },
68*655d4809SGabriele Monaco 		{            S0_ha_percpu,            S1_ha_percpu,           INVALID_STATE },
69*655d4809SGabriele Monaco 	},
70*655d4809SGabriele Monaco 	.initial_state = S0_ha_percpu,
71*655d4809SGabriele Monaco 	.final_states = { 1, 0, 0, 0 },
72*655d4809SGabriele Monaco };
73