X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Flinux%2Fwait.h;h=34f41e7901ff9c392cc1741f269be82c22b9ff83;hb=9464c7cf61b9433057924c36e6e02f303a00e768;hp=868dc31e8f4d3a33d9a9ad863e578ed71c80f459;hpb=41689045f6a3cbe0550e1d34e9cc20d2e8c432ba;p=linux-2.6.git diff --git a/include/linux/wait.h b/include/linux/wait.h index 868dc31e8..34f41e790 100644 --- a/include/linux/wait.h +++ b/include/linux/wait.h @@ -19,6 +19,7 @@ #ifdef __KERNEL__ +#include #include #include #include @@ -68,7 +69,7 @@ struct task_struct; wait_queue_t name = __WAITQUEUE_INITIALIZER(name, tsk) #define __WAIT_QUEUE_HEAD_INITIALIZER(name) { \ - .lock = __SPIN_LOCK_UNLOCKED(name.lock), \ + .lock = SPIN_LOCK_UNLOCKED, \ .task_list = { &(name).task_list, &(name).task_list } } #define DECLARE_WAIT_QUEUE_HEAD(name) \ @@ -77,7 +78,11 @@ struct task_struct; #define __WAIT_BIT_KEY_INITIALIZER(word, bit) \ { .flags = word, .bit_nr = bit, } -extern void init_waitqueue_head(wait_queue_head_t *q); +static inline void init_waitqueue_head(wait_queue_head_t *q) +{ + spin_lock_init(&q->lock); + INIT_LIST_HEAD(&q->task_list); +} static inline void init_waitqueue_entry(wait_queue_t *q, struct task_struct *p) { @@ -110,7 +115,7 @@ static inline int waitqueue_active(wait_queue_head_t *q) extern void FASTCALL(add_wait_queue(wait_queue_head_t *q, wait_queue_t * wait)); extern void FASTCALL(add_wait_queue_exclusive(wait_queue_head_t *q, wait_queue_t * wait)); -extern void FASTCALL(remove_wait_queue(wait_queue_head_t *q, wait_queue_t * wait)); +extern int FASTCALL(remove_wait_queue(wait_queue_head_t *q, wait_queue_t * wait)); static inline void __add_wait_queue(wait_queue_head_t *head, wait_queue_t *new) {