1 #ifndef __LUNAIX_CODVAR_H
2 #define __LUNAIX_CODVAR_H
4 #include <lunaix/ds/llist.h>
8 struct llist_header waiters;
12 waitq_init(waitq_t* waitq)
14 llist_init_head(&waitq->waiters);
18 waitq_empty(waitq_t* waitq)
20 return llist_empty(&waitq->waiters);
24 waitq_cancel_wait(waitq_t* waitq)
26 llist_delete(&waitq->waiters);
30 prepare_to_wait(waitq_t* waitq);
36 try_wait_check_stall();
39 pwait(waitq_t* queue);
42 pwait_check_stall(waitq_t* queue);
45 pwake_one(waitq_t* queue);
48 pwake_all(waitq_t* queue);
50 #endif /* __LUNAIX_CODVAR_H */