Merge to Fedora kernel-2.6.18-1.2224_FC5 patched with stable patch-2.6.18.1-vs2.0...
[linux-2.6.git] / include / linux / workqueue.h
index ac39d04..9bca353 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,12 +63,15 @@ 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);
@@ -73,6 +80,8 @@ 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