0001
0002
0003
0004
0005
0006
0007 enum states_wwnr {
0008 not_running_wwnr = 0,
0009 running_wwnr,
0010 state_max_wwnr
0011 };
0012
0013 #define INVALID_STATE state_max_wwnr
0014
0015 enum events_wwnr {
0016 switch_in_wwnr = 0,
0017 switch_out_wwnr,
0018 wakeup_wwnr,
0019 event_max_wwnr
0020 };
0021
0022 struct automaton_wwnr {
0023 char *state_names[state_max_wwnr];
0024 char *event_names[event_max_wwnr];
0025 unsigned char function[state_max_wwnr][event_max_wwnr];
0026 unsigned char initial_state;
0027 bool final_states[state_max_wwnr];
0028 };
0029
0030 static struct automaton_wwnr automaton_wwnr = {
0031 .state_names = {
0032 "not_running",
0033 "running"
0034 },
0035 .event_names = {
0036 "switch_in",
0037 "switch_out",
0038 "wakeup"
0039 },
0040 .function = {
0041 { running_wwnr, INVALID_STATE, not_running_wwnr },
0042 { INVALID_STATE, not_running_wwnr, INVALID_STATE },
0043 },
0044 .initial_state = not_running_wwnr,
0045 .final_states = { 1, 0 },
0046 };