9#ifndef ZEPHYR_KERNEL_INCLUDE_WAIT_Q_H_
10#define ZEPHYR_KERNEL_INCLUDE_WAIT_Q_H_
22#ifdef CONFIG_WAITQ_SCALABLE
24#define _WAIT_Q_FOR_EACH(wq, thread_ptr) \
25 RB_FOR_EACH_CONTAINER(&(wq)->waitq.tree, thread_ptr, base.qnode_rb)
27static inline void z_waitq_init(_wait_q_t *w)
29 w->waitq = (
struct _priq_rb) {
31 .lessthan_fn = z_priq_rb_lessthan
36static inline struct k_thread *z_waitq_head(_wait_q_t *w)
43#define _WAIT_Q_FOR_EACH(wq, thread_ptr) \
44 SYS_DLIST_FOR_EACH_CONTAINER(&((wq)->waitq), thread_ptr, \
47static inline void z_waitq_init(_wait_q_t *w)
52static inline struct k_thread *z_waitq_head(_wait_q_t *w)
Doubly-linked list implementation.
static sys_dnode_t * sys_dlist_peek_head(sys_dlist_t *list)
get a reference to the head item in the list
Definition: dlist.h:298
static void sys_dlist_init(sys_dlist_t *list)
initialize list to its empty state
Definition: dlist.h:199
static struct rbnode * rb_get_min(struct rbtree *tree)
Returns the lowest-sorted member of the tree.
Definition: rb.h:115
Red/Black balanced tree data structure.
timeout queue for threads on kernel objects