31 volatile uint32_t
len;
35#define MMPKT_LIST_INIT { NULL, NULL, 0 }
43static inline void mmpkt_list_init(
struct mmpkt_list *list)
57static inline uint32_t mmpkt_list_length(
struct mmpkt_list *list)
120static inline struct mmpkt *mmpkt_list_dequeue_all(
struct mmpkt_list *list)
136static inline bool mmpkt_list_is_empty(
struct mmpkt_list *list)
138 return (list->
head == NULL);
160static inline struct mmpkt *mmpkt_list_peek_tail(
struct mmpkt_list *list)
170void mmpkt_list_clear(
struct mmpkt_list *list);
180#define MMPKT_LIST_WALK(_lst, _wlk, _nxt) \
181 if ((_lst)->head != NULL) \
182 for (_wlk = (_lst)->head, _nxt = mmpkt_get_next(_wlk); \
184 _wlk = _nxt, _nxt = _wlk ? mmpkt_get_next(_wlk) : NULL)
Structure that can be used as the head of a linked list of mmpkts that counts its length.
struct mmpkt *volatile tail
Last mmpkt in the list.
volatile uint32_t len
Length of the list.
struct mmpkt *volatile head
First mmpkt in the list.
Core mmpkt data structure.