summaryrefslogtreecommitdiffstats
path: root/cpukit/libfs/src/jffs2/include/linux/workqueue.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--cpukit/libfs/src/jffs2/include/linux/workqueue.h32
1 files changed, 28 insertions, 4 deletions
diff --git a/cpukit/libfs/src/jffs2/include/linux/workqueue.h b/cpukit/libfs/src/jffs2/include/linux/workqueue.h
index 90d98288af..9811c7cd3e 100644
--- a/cpukit/libfs/src/jffs2/include/linux/workqueue.h
+++ b/cpukit/libfs/src/jffs2/include/linux/workqueue.h
@@ -1,10 +1,34 @@
#ifndef __LINUX_WORKQUEUE_H__
#define __LINUX_WORKQUEUE_H__
-struct work_struct { } ;
+#include <rtems/chain.h>
+#include <linux/mutex.h>
-#define INIT_WORK(x,y,z) /* */
-#define schedule_work(x) do { } while(0)
-#define flush_scheduled_work() do { } while(0)
+struct work_struct { rtems_chain_node node; };
+
+#define queue_delayed_work(workqueue, delayed_work, delay_ms) ({ \
+ jffs2_queue_delayed_work(delayed_work, delay_ms); \
+ 0; \
+})
+
+#define INIT_DELAYED_WORK(delayed_work, delayed_workqueue_callback) ({ \
+ (delayed_work)->callback = delayed_workqueue_callback; \
+})
+
+#define msecs_to_jiffies(a) (a)
+
+typedef void (*work_callback_t)(struct work_struct *work);
+struct delayed_work {
+ struct work_struct work;
+ struct mutex dw_mutex;
+ volatile bool pending;
+ volatile uint64_t execution_time;
+ work_callback_t callback;
+ /* Superblock provided for locking */
+ struct super_block *sb;
+};
+
+#define to_delayed_work(work) RTEMS_CONTAINER_OF(work, struct delayed_work, work)
+void jffs2_queue_delayed_work(struct delayed_work *work, int delay_ms);
#endif /* __LINUX_WORKQUEUE_H__ */