7 #include <linux/export.h>
8 #include <linux/sched.h>
10 #include <linux/wait.h>
11 #include <linux/hash.h>
28 __add_wait_queue(q, wait);
29 spin_unlock_irqrestore(&q->
lock, flags);
39 __add_wait_queue_tail(q, wait);
40 spin_unlock_irqrestore(&q->
lock, flags);
49 __remove_wait_queue(q, wait);
50 spin_unlock_irqrestore(&q->
lock, flags);
75 __add_wait_queue(q, wait);
77 spin_unlock_irqrestore(&q->
lock, flags);
89 __add_wait_queue_tail(q, wait);
91 spin_unlock_irqrestore(&q->
lock, flags);
122 if (!list_empty_careful(&wait->
task_list)) {
125 spin_unlock_irqrestore(&q->
lock, flags);
157 else if (waitqueue_active(q))
159 spin_unlock_irqrestore(&q->
lock, flags);
179 if (wait_bit->
key.flags != key->
flags ||
202 ret = (*action)(q->
key.flags);
253 if (waitqueue_active(wq))
285 unsigned long val = (
unsigned long)word << shift | bit;