diff options
Diffstat (limited to 'include/linux/workqueue.h')
| -rw-r--r-- | include/linux/workqueue.h | 15 | 
1 files changed, 8 insertions, 7 deletions
diff --git a/include/linux/workqueue.h b/include/linux/workqueue.h index 3992c994787f..683efe29fa69 100644 --- a/include/linux/workqueue.h +++ b/include/linux/workqueue.h @@ -68,7 +68,6 @@ enum {  	WORK_OFFQ_FLAG_BASE	= WORK_STRUCT_COLOR_SHIFT,  	__WORK_OFFQ_CANCELING	= WORK_OFFQ_FLAG_BASE, -	WORK_OFFQ_CANCELING	= (1 << __WORK_OFFQ_CANCELING),  	/*  	 * When a work item is off queue, its high bits point to the last @@ -79,12 +78,6 @@ enum {  	WORK_OFFQ_POOL_SHIFT	= WORK_OFFQ_FLAG_BASE + WORK_OFFQ_FLAG_BITS,  	WORK_OFFQ_LEFT		= BITS_PER_LONG - WORK_OFFQ_POOL_SHIFT,  	WORK_OFFQ_POOL_BITS	= WORK_OFFQ_LEFT <= 31 ? WORK_OFFQ_LEFT : 31, -	WORK_OFFQ_POOL_NONE	= (1LU << WORK_OFFQ_POOL_BITS) - 1, - -	/* convenience constants */ -	WORK_STRUCT_FLAG_MASK	= (1UL << WORK_STRUCT_FLAG_BITS) - 1, -	WORK_STRUCT_WQ_DATA_MASK = ~WORK_STRUCT_FLAG_MASK, -	WORK_STRUCT_NO_POOL	= (unsigned long)WORK_OFFQ_POOL_NONE << WORK_OFFQ_POOL_SHIFT,  	/* bit mask for work_busy() return values */  	WORK_BUSY_PENDING	= 1 << 0, @@ -94,6 +87,14 @@ enum {  	WORKER_DESC_LEN		= 24,  }; +/* Convenience constants - of type 'unsigned long', not 'enum'! */ +#define WORK_OFFQ_CANCELING	(1ul << __WORK_OFFQ_CANCELING) +#define WORK_OFFQ_POOL_NONE	((1ul << WORK_OFFQ_POOL_BITS) - 1) +#define WORK_STRUCT_NO_POOL	(WORK_OFFQ_POOL_NONE << WORK_OFFQ_POOL_SHIFT) + +#define WORK_STRUCT_FLAG_MASK    ((1ul << WORK_STRUCT_FLAG_BITS) - 1) +#define WORK_STRUCT_WQ_DATA_MASK (~WORK_STRUCT_FLAG_MASK) +  struct work_struct {  	atomic_long_t data;  	struct list_head entry;  |