1/* Public domain. */ 2 3#ifndef _LINUX_WAIT_BIT_H 4#define _LINUX_WAIT_BIT_H 5 6#include <linux/wait.h> 7 8int wait_on_bit(unsigned long *, int, unsigned); 9int wait_on_bit_timeout(unsigned long *, int, unsigned, int); 10void wake_up_bit(void *, int); 11void clear_and_wake_up_bit(int, void *); 12 13wait_queue_head_t *bit_waitqueue(void *, int); 14wait_queue_head_t *__var_waitqueue(void *); 15 16extern wait_queue_head_t var_waitq; 17 18static inline void 19wake_up_var(void *var) 20{ 21 wake_up(&var_waitq); 22} 23 24#define wait_var_event(var, condition) \ 25 wait_event(var_waitq, (condition)) 26 27#define wait_var_event_interruptible(var, condition) \ 28 wait_event_interruptible(var_waitq, condition) 29 30#define wait_var_event_killable(var, condition) \ 31 wait_event_killable(var_waitq, (condition)) 32 33#define ___wait_var_event(var, condition, state, ex, ret, fn) \ 34({ \ 35 long __ret = ret ; \ 36 if (state & TASK_INTERRUPTIBLE) \ 37 __ret = wait_var_event_interruptible((var), (condition)); \ 38 else \ 39 wait_var_event((var), (condition)); \ 40 __ret; \ 41}) 42 43#endif 44