4 #include "../genstructs/htable/htable.h"
6 #define MAX_EVT_DESC 64
9 char evt_desc
[MAX_EVT_DESC
];
10 void (*evt_actionf
)(void *data
);
11 struct state
*evt_newstate
;
14 typedef struct state
{
20 #define STATE_REACHABLE (1 << 0)
21 #define STATE_IS_REACHABLE(pstate) ((pstate)->flag & STATE_REACHABLE)
22 #define STATE_MARK_AS_REACHABLE(pstate) (pstate)->flag |= STATE_REACHABLE;
23 #define STATE_MARK_AS_UNREACHABLE(pstate) (pstate)->flag &= ~STATE_REACHABLE;
32 typedef struct pqnode
{
36 STAILQ_ENTRY(pqnode
) pq_next
;
40 htable_t
*sttable
; /* hash table for states */
41 state_t
*cstate
; /* current state of fsm */
42 unsigned int nqueues
; /* number of priority queues */
43 void *mobj
; /* mutual exclusion object */
44 void (*fsm_pq_lock
)(const struct fsm
*);
45 void (*fsm_pq_unlock
)(const struct fsm
*);
46 STAILQ_HEAD(pqhead
, pqnode
) *pqtable
;
49 typedef struct pqhead pqhead_t
;