1*b133207dSGabriele Monaco /* SPDX-License-Identifier: GPL-2.0 */ 2*b133207dSGabriele Monaco /* 3*b133207dSGabriele Monaco * Automatically generated C representation of nomiss automaton 4*b133207dSGabriele Monaco * For further information about this format, see kernel documentation: 5*b133207dSGabriele Monaco * Documentation/trace/rv/deterministic_automata.rst 6*b133207dSGabriele Monaco */ 7*b133207dSGabriele Monaco 8*b133207dSGabriele Monaco #define MONITOR_NAME nomiss 9*b133207dSGabriele Monaco 10*b133207dSGabriele Monaco enum states_nomiss { 11*b133207dSGabriele Monaco ready_nomiss, 12*b133207dSGabriele Monaco idle_nomiss, 13*b133207dSGabriele Monaco running_nomiss, 14*b133207dSGabriele Monaco sleeping_nomiss, 15*b133207dSGabriele Monaco throttled_nomiss, 16*b133207dSGabriele Monaco state_max_nomiss, 17*b133207dSGabriele Monaco }; 18*b133207dSGabriele Monaco 19*b133207dSGabriele Monaco #define INVALID_STATE state_max_nomiss 20*b133207dSGabriele Monaco 21*b133207dSGabriele Monaco enum events_nomiss { 22*b133207dSGabriele Monaco dl_replenish_nomiss, 23*b133207dSGabriele Monaco dl_server_idle_nomiss, 24*b133207dSGabriele Monaco dl_server_stop_nomiss, 25*b133207dSGabriele Monaco dl_throttle_nomiss, 26*b133207dSGabriele Monaco sched_switch_in_nomiss, 27*b133207dSGabriele Monaco sched_switch_suspend_nomiss, 28*b133207dSGabriele Monaco sched_wakeup_nomiss, 29*b133207dSGabriele Monaco event_max_nomiss, 30*b133207dSGabriele Monaco }; 31*b133207dSGabriele Monaco 32*b133207dSGabriele Monaco enum envs_nomiss { 33*b133207dSGabriele Monaco clk_nomiss, 34*b133207dSGabriele Monaco is_constr_dl_nomiss, 35*b133207dSGabriele Monaco is_defer_nomiss, 36*b133207dSGabriele Monaco env_max_nomiss, 37*b133207dSGabriele Monaco env_max_stored_nomiss = is_constr_dl_nomiss, 38*b133207dSGabriele Monaco }; 39*b133207dSGabriele Monaco 40*b133207dSGabriele Monaco _Static_assert(env_max_stored_nomiss <= MAX_HA_ENV_LEN, "Not enough slots"); 41*b133207dSGabriele Monaco #define HA_CLK_NS 42*b133207dSGabriele Monaco 43*b133207dSGabriele Monaco struct automaton_nomiss { 44*b133207dSGabriele Monaco char *state_names[state_max_nomiss]; 45*b133207dSGabriele Monaco char *event_names[event_max_nomiss]; 46*b133207dSGabriele Monaco char *env_names[env_max_nomiss]; 47*b133207dSGabriele Monaco unsigned char function[state_max_nomiss][event_max_nomiss]; 48*b133207dSGabriele Monaco unsigned char initial_state; 49*b133207dSGabriele Monaco bool final_states[state_max_nomiss]; 50*b133207dSGabriele Monaco }; 51*b133207dSGabriele Monaco 52*b133207dSGabriele Monaco static const struct automaton_nomiss automaton_nomiss = { 53*b133207dSGabriele Monaco .state_names = { 54*b133207dSGabriele Monaco "ready", 55*b133207dSGabriele Monaco "idle", 56*b133207dSGabriele Monaco "running", 57*b133207dSGabriele Monaco "sleeping", 58*b133207dSGabriele Monaco "throttled", 59*b133207dSGabriele Monaco }, 60*b133207dSGabriele Monaco .event_names = { 61*b133207dSGabriele Monaco "dl_replenish", 62*b133207dSGabriele Monaco "dl_server_idle", 63*b133207dSGabriele Monaco "dl_server_stop", 64*b133207dSGabriele Monaco "dl_throttle", 65*b133207dSGabriele Monaco "sched_switch_in", 66*b133207dSGabriele Monaco "sched_switch_suspend", 67*b133207dSGabriele Monaco "sched_wakeup", 68*b133207dSGabriele Monaco }, 69*b133207dSGabriele Monaco .env_names = { 70*b133207dSGabriele Monaco "clk", 71*b133207dSGabriele Monaco "is_constr_dl", 72*b133207dSGabriele Monaco "is_defer", 73*b133207dSGabriele Monaco }, 74*b133207dSGabriele Monaco .function = { 75*b133207dSGabriele Monaco { 76*b133207dSGabriele Monaco ready_nomiss, 77*b133207dSGabriele Monaco idle_nomiss, 78*b133207dSGabriele Monaco sleeping_nomiss, 79*b133207dSGabriele Monaco throttled_nomiss, 80*b133207dSGabriele Monaco running_nomiss, 81*b133207dSGabriele Monaco INVALID_STATE, 82*b133207dSGabriele Monaco ready_nomiss, 83*b133207dSGabriele Monaco }, 84*b133207dSGabriele Monaco { 85*b133207dSGabriele Monaco ready_nomiss, 86*b133207dSGabriele Monaco idle_nomiss, 87*b133207dSGabriele Monaco sleeping_nomiss, 88*b133207dSGabriele Monaco throttled_nomiss, 89*b133207dSGabriele Monaco running_nomiss, 90*b133207dSGabriele Monaco INVALID_STATE, 91*b133207dSGabriele Monaco INVALID_STATE, 92*b133207dSGabriele Monaco }, 93*b133207dSGabriele Monaco { 94*b133207dSGabriele Monaco running_nomiss, 95*b133207dSGabriele Monaco idle_nomiss, 96*b133207dSGabriele Monaco sleeping_nomiss, 97*b133207dSGabriele Monaco throttled_nomiss, 98*b133207dSGabriele Monaco running_nomiss, 99*b133207dSGabriele Monaco sleeping_nomiss, 100*b133207dSGabriele Monaco running_nomiss, 101*b133207dSGabriele Monaco }, 102*b133207dSGabriele Monaco { 103*b133207dSGabriele Monaco ready_nomiss, 104*b133207dSGabriele Monaco sleeping_nomiss, 105*b133207dSGabriele Monaco sleeping_nomiss, 106*b133207dSGabriele Monaco throttled_nomiss, 107*b133207dSGabriele Monaco running_nomiss, 108*b133207dSGabriele Monaco INVALID_STATE, 109*b133207dSGabriele Monaco ready_nomiss, 110*b133207dSGabriele Monaco }, 111*b133207dSGabriele Monaco { 112*b133207dSGabriele Monaco ready_nomiss, 113*b133207dSGabriele Monaco throttled_nomiss, 114*b133207dSGabriele Monaco INVALID_STATE, 115*b133207dSGabriele Monaco throttled_nomiss, 116*b133207dSGabriele Monaco INVALID_STATE, 117*b133207dSGabriele Monaco throttled_nomiss, 118*b133207dSGabriele Monaco throttled_nomiss, 119*b133207dSGabriele Monaco }, 120*b133207dSGabriele Monaco }, 121*b133207dSGabriele Monaco .initial_state = ready_nomiss, 122*b133207dSGabriele Monaco .final_states = { 1, 0, 0, 0, 0 }, 123*b133207dSGabriele Monaco }; 124