123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423 |
- extern "C" {
- struct _snode {
- struct _snode *next;
- };
- typedef struct _snode sys_snode_t;
- struct _slist {
- sys_snode_t *head;
- sys_snode_t *tail;
- };
- typedef struct _slist sys_slist_t;
-
- Z_GENLIST_FOR_EACH_NODE(slist, __sl, __sn)
- Z_GENLIST_ITERATE_FROM_NODE(slist, __sl, __sn)
- Z_GENLIST_FOR_EACH_NODE_SAFE(slist, __sl, __sn, __sns)
- Z_GENLIST_CONTAINER(__ln, __cn, __n)
- Z_GENLIST_PEEK_HEAD_CONTAINER(slist, __sl, __cn, __n)
- Z_GENLIST_PEEK_TAIL_CONTAINER(slist, __sl, __cn, __n)
- Z_GENLIST_PEEK_NEXT_CONTAINER(slist, __cn, __n)
- Z_GENLIST_FOR_EACH_CONTAINER(slist, __sl, __cn, __n)
- Z_GENLIST_FOR_EACH_CONTAINER_SAFE(slist, __sl, __cn, __cns, __n)
- static inline void sys_slist_init(sys_slist_t *list)
- {
- list->head = NULL;
- list->tail = NULL;
- }
- static inline sys_snode_t *z_snode_next_peek(sys_snode_t *node)
- {
- return node->next;
- }
- static inline void z_snode_next_set(sys_snode_t *parent, sys_snode_t *child)
- {
- parent->next = child;
- }
- static inline void z_slist_head_set(sys_slist_t *list, sys_snode_t *node)
- {
- list->head = node;
- }
- static inline void z_slist_tail_set(sys_slist_t *list, sys_snode_t *node)
- {
- list->tail = node;
- }
- static inline sys_snode_t *sys_slist_peek_head(sys_slist_t *list)
- {
- return list->head;
- }
- static inline sys_snode_t *sys_slist_peek_tail(sys_slist_t *list)
- {
- return list->tail;
- }
- static inline bool sys_slist_is_empty(sys_slist_t *list);
- Z_GENLIST_IS_EMPTY(slist)
- static inline sys_snode_t *sys_slist_peek_next_no_check(sys_snode_t *node);
- Z_GENLIST_PEEK_NEXT_NO_CHECK(slist, snode)
- static inline sys_snode_t *sys_slist_peek_next(sys_snode_t *node);
- Z_GENLIST_PEEK_NEXT(slist, snode)
- static inline void sys_slist_prepend(sys_slist_t *list,
- sys_snode_t *node);
- Z_GENLIST_PREPEND(slist, snode)
- static inline void sys_slist_append(sys_slist_t *list,
- sys_snode_t *node);
- Z_GENLIST_APPEND(slist, snode)
- static inline void sys_slist_append_list(sys_slist_t *list,
- void *head, void *tail);
- Z_GENLIST_APPEND_LIST(slist, snode)
- static inline void sys_slist_merge_slist(sys_slist_t *list,
- sys_slist_t *list_to_append);
- Z_GENLIST_MERGE_LIST(slist, snode)
- static inline void sys_slist_insert(sys_slist_t *list,
- sys_snode_t *prev,
- sys_snode_t *node);
- Z_GENLIST_INSERT(slist, snode)
- static inline sys_snode_t *sys_slist_get_not_empty(sys_slist_t *list);
- Z_GENLIST_GET_NOT_EMPTY(slist, snode)
- static inline sys_snode_t *sys_slist_get(sys_slist_t *list);
- Z_GENLIST_GET(slist, snode)
- static inline void sys_slist_remove(sys_slist_t *list,
- sys_snode_t *prev_node,
- sys_snode_t *node);
- Z_GENLIST_REMOVE(slist, snode)
- static inline bool sys_slist_find_and_remove(sys_slist_t *list,
- sys_snode_t *node);
- Z_GENLIST_FIND_AND_REMOVE(slist, snode)
- }
|