5 #include <stdio.h> /* for FILE type */
7 /* Function prototypes */
8 fsmret_t
fsm_init(fsm_t
**state
, size_t size
, unsigned int factor
, unsigned int nqueues
);
9 fsmret_t
fsm_add_state(fsm_t
*fsm
, unsigned int key
, state_t
*state
);
10 fsmret_t
fsm_free(fsm_t
*fsm
);
11 void fsm_print_states(const fsm_t
*fsm
);
12 fsmret_t
fsm_set_state(fsm_t
*fsm
, unsigned int stkey
);
13 unsigned int fsm_get_current_state(const fsm_t
*fsm
);
14 fsmret_t
fsm_queue_event(fsm_t
*fsm
, unsigned int evtkey
, void *data
, size_t size
, unsigned int prio
);
15 fsmret_t
fsm_dequeue_event(fsm_t
*fsm
);
16 size_t fsm_get_queued_events(const fsm_t
*fsm
);
17 fsmret_t
fsm_process_event(fsm_t
*fsm
, unsigned int evtkey
, void *data
);
18 fsmret_t
fsm_validate(const fsm_t
*fsm
);
19 void fsm_export_to_dot(const fsm_t
*fsm
, FILE *fp
);