wpa_supplicant / hostapd  2.5
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
state_machine.h
Go to the documentation of this file.
1 
16 #ifndef STATE_MACHINE_H
17 #define STATE_MACHINE_H
18 
28 #define SM_STATE(machine, state) \
29 static void sm_ ## machine ## _ ## state ## _Enter(STATE_MACHINE_DATA *sm, \
30  int global)
31 
42 #define SM_ENTRY(machine, state) \
43 if (!global || sm->machine ## _state != machine ## _ ## state) { \
44  sm->changed = TRUE; \
45  wpa_printf(MSG_DEBUG, STATE_MACHINE_DEBUG_PREFIX ": " #machine \
46  " entering state " #state); \
47 } \
48 sm->machine ## _state = machine ## _ ## state;
49 
61 #define SM_ENTRY_M(machine, _state, data) \
62 if (!global || sm->data ## _ ## state != machine ## _ ## _state) { \
63  sm->changed = TRUE; \
64  wpa_printf(MSG_DEBUG, STATE_MACHINE_DEBUG_PREFIX ": " \
65  #machine " entering state " #_state); \
66 } \
67 sm->data ## _ ## state = machine ## _ ## _state;
68 
79 #define SM_ENTRY_MA(machine, _state, data) \
80 if (!global || sm->data ## _ ## state != machine ## _ ## _state) { \
81  sm->changed = TRUE; \
82  wpa_printf(MSG_DEBUG, STATE_MACHINE_DEBUG_PREFIX ": " MACSTR " " \
83  #machine " entering state " #_state, \
84  MAC2STR(STATE_MACHINE_ADDR)); \
85 } \
86 sm->data ## _ ## state = machine ## _ ## _state;
87 
97 #define SM_ENTER(machine, state) \
98 sm_ ## machine ## _ ## state ## _Enter(sm, 0)
99 
110 #define SM_ENTER_GLOBAL(machine, state) \
111 sm_ ## machine ## _ ## state ## _Enter(sm, 1)
112 
122 #define SM_STEP(machine) \
123 static void sm_ ## machine ## _Step(STATE_MACHINE_DATA *sm)
124 
132 #define SM_STEP_RUN(machine) sm_ ## machine ## _Step(sm)
133 
134 #endif /* STATE_MACHINE_H */