]> Pileus Git - ~andy/linux/blobdiff - include/linux/workqueue.h
Merge master.kernel.org:/pub/scm/linux/kernel/git/davej/cpufreq
[~andy/linux] / include / linux / workqueue.h
index ff46f537ba9b30625448ca83b5f48a6bd49d1434..9bca3539a1e5a965023bd20c148320d96f7d1e27 100644 (file)
@@ -20,6 +20,10 @@ struct work_struct {
        struct timer_list timer;
 };
 
+struct execute_work {
+       struct work_struct work;
+};
+
 #define __WORK_INITIALIZER(n, f, d) {                          \
         .entry = { &(n).entry, &(n).entry },                   \
        .func = (f),                                            \
@@ -59,18 +63,25 @@ extern void destroy_workqueue(struct workqueue_struct *wq);
 
 extern int FASTCALL(queue_work(struct workqueue_struct *wq, struct work_struct *work));
 extern int FASTCALL(queue_delayed_work(struct workqueue_struct *wq, struct work_struct *work, unsigned long delay));
+extern int queue_delayed_work_on(int cpu, struct workqueue_struct *wq,
+       struct work_struct *work, unsigned long delay);
 extern void FASTCALL(flush_workqueue(struct workqueue_struct *wq));
 
 extern int FASTCALL(schedule_work(struct work_struct *work));
 extern int FASTCALL(schedule_delayed_work(struct work_struct *work, unsigned long delay));
 
 extern int schedule_delayed_work_on(int cpu, struct work_struct *work, unsigned long delay);
+extern int schedule_on_each_cpu(void (*func)(void *info), void *info);
 extern void flush_scheduled_work(void);
 extern int current_is_keventd(void);
 extern int keventd_up(void);
 
 extern void init_workqueues(void);
 void cancel_rearming_delayed_work(struct work_struct *work);
+void cancel_rearming_delayed_workqueue(struct workqueue_struct *,
+                                      struct work_struct *);
+int execute_in_process_context(void (*fn)(void *), void *,
+                              struct execute_work *);
 
 /*
  * Kill off a pending schedule_delayed_work().  Note that the work callback