Remove whitespace from wip test case
[eleutheria.git] / misc / fsm / types.h
blob7283ff63c48b5b324268a16cfbb053d94fc26210
1 #ifndef TYPES_H
2 #define TYPES_H
4 #include "htable.h"
6 #define MAX_EVT_DESC 64
8 typedef struct event {
9 char evt_desc[MAX_EVT_DESC];
10 void (*evt_actionf)(void *data);
11 struct state *evt_newstate;
12 } event_t;
14 typedef struct state {
15 htable_t *evttable;
16 unsigned int *st_key;
17 } state_t;
19 typedef enum {
20 ST_OK,
21 ST_EXISTS,
22 ST_NOMEM,
23 ST_NOTFOUND
24 } stret_t;
26 typedef struct pqnode {
27 void *data;
28 unsigned int evtkey;
29 unsigned int prio;
30 STAILQ_ENTRY(pqnode) pq_next;
31 } pqnode_t;
33 typedef struct fsm {
34 htable_t *sttable;
35 state_t *cstate; /* current state of fsm */
36 unsigned int nqueues;
37 STAILQ_HEAD(pqhead, pqnode) *pqtable;
38 } fsm_t;
40 typedef struct pqhead pqhead_t;
42 typedef enum {
43 FSM_CLEAN,
44 FSM_DIRTY,
45 FSM_EMPTY,
46 FSM_EPRIO,
47 FSM_EXISTS,
48 FSM_NOMEM,
49 FSM_NOTFOUND,
50 FSM_OK
51 } fsmret_t;
53 #endif /* TYPES_H */