xref: /linux/tools/verification/rvgen/tests/golden/test_ha/test_ha.h (revision 55ee4b931a7ffedc886175d265dd6e6d08fd4151)
1*655d4809SGabriele Monaco /* SPDX-License-Identifier: GPL-2.0 */
2*655d4809SGabriele Monaco /*
3*655d4809SGabriele Monaco  * Automatically generated C representation of test_ha 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 test_ha
9*655d4809SGabriele Monaco 
10*655d4809SGabriele Monaco enum states_test_ha {
11*655d4809SGabriele Monaco 	S0_test_ha,
12*655d4809SGabriele Monaco 	S1_test_ha,
13*655d4809SGabriele Monaco 	S2_test_ha,
14*655d4809SGabriele Monaco 	S3_test_ha,
15*655d4809SGabriele Monaco 	state_max_test_ha,
16*655d4809SGabriele Monaco };
17*655d4809SGabriele Monaco 
18*655d4809SGabriele Monaco #define INVALID_STATE state_max_test_ha
19*655d4809SGabriele Monaco 
20*655d4809SGabriele Monaco enum events_test_ha {
21*655d4809SGabriele Monaco 	event0_test_ha,
22*655d4809SGabriele Monaco 	event1_test_ha,
23*655d4809SGabriele Monaco 	event2_test_ha,
24*655d4809SGabriele Monaco 	event_max_test_ha,
25*655d4809SGabriele Monaco };
26*655d4809SGabriele Monaco 
27*655d4809SGabriele Monaco enum envs_test_ha {
28*655d4809SGabriele Monaco 	clk_test_ha,
29*655d4809SGabriele Monaco 	env1_test_ha,
30*655d4809SGabriele Monaco 	env2_test_ha,
31*655d4809SGabriele Monaco 	env_max_test_ha,
32*655d4809SGabriele Monaco 	env_max_stored_test_ha = env1_test_ha,
33*655d4809SGabriele Monaco };
34*655d4809SGabriele Monaco 
35*655d4809SGabriele Monaco _Static_assert(env_max_stored_test_ha <= MAX_HA_ENV_LEN, "Not enough slots");
36*655d4809SGabriele Monaco #define HA_CLK_NS
37*655d4809SGabriele Monaco 
38*655d4809SGabriele Monaco struct automaton_test_ha {
39*655d4809SGabriele Monaco 	char *state_names[state_max_test_ha];
40*655d4809SGabriele Monaco 	char *event_names[event_max_test_ha];
41*655d4809SGabriele Monaco 	char *env_names[env_max_test_ha];
42*655d4809SGabriele Monaco 	unsigned char function[state_max_test_ha][event_max_test_ha];
43*655d4809SGabriele Monaco 	unsigned char initial_state;
44*655d4809SGabriele Monaco 	bool final_states[state_max_test_ha];
45*655d4809SGabriele Monaco };
46*655d4809SGabriele Monaco 
47*655d4809SGabriele Monaco static const struct automaton_test_ha automaton_test_ha = {
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_test_ha,            S1_test_ha,         INVALID_STATE },
66*655d4809SGabriele Monaco 		{            S0_test_ha,         INVALID_STATE,            S2_test_ha },
67*655d4809SGabriele Monaco 		{         INVALID_STATE,            S2_test_ha,            S3_test_ha },
68*655d4809SGabriele Monaco 		{            S0_test_ha,            S1_test_ha,         INVALID_STATE },
69*655d4809SGabriele Monaco 	},
70*655d4809SGabriele Monaco 	.initial_state = S0_test_ha,
71*655d4809SGabriele Monaco 	.final_states = { 1, 0, 0, 0 },
72*655d4809SGabriele Monaco };
73