dmsg_state
struct dmsg_state;
TAILQ_HEAD(dmsg_state_queue, dmsg_state);
RB_HEAD(dmsg_state_tree, dmsg_state);
RB_ENTRY(dmsg_state) rbnode; /* by state->msgid */
struct dmsg_state *scan; /* scan check */
TAILQ_HEAD(, dmsg_state) subq; /* active stacked states */
TAILQ_ENTRY(dmsg_state) entry; /* on parent subq */
struct dmsg_state *parent; /* transaction stacking */
struct dmsg_state *relay; /* routing */
struct dmsg_state *state; /* message state */
typedef struct dmsg_state dmsg_state_t;
RB_PROTOTYPE(dmsg_state_tree, dmsg_state, rbnode, dmsg_state_cmp);
RB_GENERATE(dmsg_state_tree, dmsg_state, rbnode, dmsg_state_cmp);