WAKEUP
static union WAKEUP {
# define WAKEUP(id,x) wakeup(id + x)
# define WAKEUP(x,y) wake_up(x##_linux + y)
# define WAKEUP(id,x) wakeup(id)
# define WAKEUP(x,y) ;
# define WAKEUP(id,x) wakeup(id+x)
# define WAKEUP(id,x) { lock_t *_l = get_sleep_lock((caddr_t)id); \
# define WAKEUP(id,x) wakeup(id+x)
# define WAKEUP(id,x) wakeup(id + x)