#define __CYC_WAITQUEUE_INITIALIZER(name, tsk) {			\
        flags:          0,                                              \
	task:		tsk,						\
	task_list:	{ 0, 0 },					\
			 __WAITQUEUE_DEBUG_INIT(name)}

#define CYC_DECLARE_WAITQUEUE(name, tsk)					\
	wait_queue_t name = __CYC_WAITQUEUE_INITIALIZER(name, tsk)

#define __CYC_WAIT_QUEUE_HEAD_INITIALIZER(name) {				\
	lock:		WAITQUEUE_RW_LOCK_UNLOCKED,			\
	task_list:	{ &(name).task_list, &(name).task_list },	\
			__WAITQUEUE_HEAD_DEBUG_INIT(name)}

#define CYC_DECLARE_WAIT_QUEUE_HEAD(name) \
	wait_queue_head_t name = __CYC_WAIT_QUEUE_HEAD_INITIALIZER(name)
