61 if (ctx->current_state) {
62 ctx->current_state(ctx, evt, data);
75 if (ctx->current_state == state) {
79 ctx->current_state = state;
90 ctx->current_state = NULL;
96 #define RETEVT(x) case x: return #x;
const char * ocs_sm_event_name(ocs_sm_event_t evt)
void *(* ocs_sm_function_t)(ocs_sm_ctx_t *, ocs_sm_event_t, void *)
void ocs_sm_transition(ocs_sm_ctx_t *ctx, ocs_sm_function_t state, void *data)
Transition to a new state.
int ocs_sm_post_event(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *data)
Post an event to a context.
ocs_sm_event_t
State Machine Events.
void ocs_sm_disable(ocs_sm_ctx_t *ctx)
Disable further state machine processing.