aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/workqueue.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/workqueue.h')
-rw-r--r--include/linux/workqueue.h40
1 files changed, 5 insertions, 35 deletions
diff --git a/include/linux/workqueue.h b/include/linux/workqueue.h
index 1b22c42e9c2d..a0cc2e95ed1b 100644
--- a/include/linux/workqueue.h
+++ b/include/linux/workqueue.h
@@ -56,9 +56,8 @@ enum {
56 WORK_NR_COLORS = (1 << WORK_STRUCT_COLOR_BITS) - 1, 56 WORK_NR_COLORS = (1 << WORK_STRUCT_COLOR_BITS) - 1,
57 WORK_NO_COLOR = WORK_NR_COLORS, 57 WORK_NO_COLOR = WORK_NR_COLORS,
58 58
59 /* special cpu IDs */ 59 /* not bound to any CPU, prefer the local CPU */
60 WORK_CPU_UNBOUND = NR_CPUS, 60 WORK_CPU_UNBOUND = NR_CPUS,
61 WORK_CPU_END = NR_CPUS + 1,
62 61
63 /* 62 /*
64 * Reserve 7 bits off of pwq pointer w/ debugobjects turned off. 63 * Reserve 7 bits off of pwq pointer w/ debugobjects turned off.
@@ -274,13 +273,6 @@ static inline unsigned int work_static(struct work_struct *work) { return 0; }
274#define delayed_work_pending(w) \ 273#define delayed_work_pending(w) \
275 work_pending(&(w)->work) 274 work_pending(&(w)->work)
276 275
277/**
278 * work_clear_pending - for internal use only, mark a work item as not pending
279 * @work: The work item in question
280 */
281#define work_clear_pending(work) \
282 clear_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(work))
283
284/* 276/*
285 * Workqueue flags and constants. For details, please refer to 277 * Workqueue flags and constants. For details, please refer to
286 * Documentation/workqueue.txt. 278 * Documentation/workqueue.txt.
@@ -340,6 +332,9 @@ enum {
340 * short queue flush time. Don't queue works which can run for too 332 * short queue flush time. Don't queue works which can run for too
341 * long. 333 * long.
342 * 334 *
335 * system_highpri_wq is similar to system_wq but for work items which
336 * require WQ_HIGHPRI.
337 *
343 * system_long_wq is similar to system_wq but may host long running 338 * system_long_wq is similar to system_wq but may host long running
344 * works. Queue flushing might take relatively long. 339 * works. Queue flushing might take relatively long.
345 * 340 *
@@ -358,26 +353,13 @@ enum {
358 * 'wq_power_efficient' is disabled. See WQ_POWER_EFFICIENT for more info. 353 * 'wq_power_efficient' is disabled. See WQ_POWER_EFFICIENT for more info.
359 */ 354 */
360extern struct workqueue_struct *system_wq; 355extern struct workqueue_struct *system_wq;
356extern struct workqueue_struct *system_highpri_wq;
361extern struct workqueue_struct *system_long_wq; 357extern struct workqueue_struct *system_long_wq;
362extern struct workqueue_struct *system_unbound_wq; 358extern struct workqueue_struct *system_unbound_wq;
363extern struct workqueue_struct *system_freezable_wq; 359extern struct workqueue_struct *system_freezable_wq;
364extern struct workqueue_struct *system_power_efficient_wq; 360extern struct workqueue_struct *system_power_efficient_wq;
365extern struct workqueue_struct *system_freezable_power_efficient_wq; 361extern struct workqueue_struct *system_freezable_power_efficient_wq;
366 362
367static inline struct workqueue_struct * __deprecated __system_nrt_wq(void)
368{
369 return system_wq;
370}
371
372static inline struct workqueue_struct * __deprecated __system_nrt_freezable_wq(void)
373{
374 return system_freezable_wq;
375}
376
377/* equivlalent to system_wq and system_freezable_wq, deprecated */
378#define system_nrt_wq __system_nrt_wq()
379#define system_nrt_freezable_wq __system_nrt_freezable_wq()
380
381extern struct workqueue_struct * 363extern struct workqueue_struct *
382__alloc_workqueue_key(const char *fmt, unsigned int flags, int max_active, 364__alloc_workqueue_key(const char *fmt, unsigned int flags, int max_active,
383 struct lock_class_key *key, const char *lock_name, ...) __printf(1, 6); 365 struct lock_class_key *key, const char *lock_name, ...) __printf(1, 6);
@@ -587,18 +569,6 @@ static inline bool keventd_up(void)
587 return system_wq != NULL; 569 return system_wq != NULL;
588} 570}
589 571
590/* used to be different but now identical to flush_work(), deprecated */
591static inline bool __deprecated flush_work_sync(struct work_struct *work)
592{
593 return flush_work(work);
594}
595
596/* used to be different but now identical to flush_delayed_work(), deprecated */
597static inline bool __deprecated flush_delayed_work_sync(struct delayed_work *dwork)
598{
599 return flush_delayed_work(dwork);
600}
601
602#ifndef CONFIG_SMP 572#ifndef CONFIG_SMP
603static inline long work_on_cpu(int cpu, long (*fn)(void *), void *arg) 573static inline long work_on_cpu(int cpu, long (*fn)(void *), void *arg)
604{ 574{