X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/96e23fa3c6eabf8a6efebac24b740c5d4a2a1050..5ea8e2ba737f903db81d49b56778e883634512a5:/lunaix-os/includes/lunaix/ds/waitq.h diff --git a/lunaix-os/includes/lunaix/ds/waitq.h b/lunaix-os/includes/lunaix/ds/waitq.h new file mode 100644 index 0000000..dfeb7c3 --- /dev/null +++ b/lunaix-os/includes/lunaix/ds/waitq.h @@ -0,0 +1,26 @@ +#ifndef __LUNAIX_CODVAR_H +#define __LUNAIX_CODVAR_H + +#include + +typedef struct waitq +{ + struct llist_header waiters; +} waitq_t; + +inline void +waitq_init(waitq_t* waitq) +{ + llist_init_head(&waitq->waiters); +} + +void +pwait(waitq_t* queue); + +void +pwake_one(waitq_t* queue); + +void +pwake_all(waitq_t* queue); + +#endif /* __LUNAIX_CODVAR_H */