summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/timer.h24
-rw-r--r--include/linux/workqueue.h6
2 files changed, 12 insertions, 18 deletions
diff --git a/include/linux/timer.h b/include/linux/timer.h
index 363f26a4..9667acf9 100644
--- a/include/linux/timer.h
+++ b/include/linux/timer.h
@@ -6,27 +6,22 @@
struct timer_list {
unsigned long expires;
- void (*function)(unsigned long);
- unsigned long data;
+ void (*function)(struct timer_list *timer);
bool pending;
};
-static inline void init_timer(struct timer_list *timer)
+static inline void timer_setup(struct timer_list *timer,
+ void (*func)(struct timer_list *),
+ unsigned int flags)
{
memset(timer, 0, sizeof(*timer));
+ timer->function = func;
}
-#define __init_timer(_timer, _flags) init_timer(_timer)
+#define timer_setup_on_stack(timer, callback, flags) \
+ timer_setup(timer, callback, flags)
-#define __setup_timer(_timer, _fn, _data, _flags) \
- do { \
- __init_timer((_timer), (_flags)); \
- (_timer)->function = (_fn); \
- (_timer)->data = (_data); \
- } while (0)
-
-#define setup_timer(timer, fn, data) \
- __setup_timer((timer), (fn), (data), 0)
+#define destroy_timer_on_stack(timer) do {} while (0)
static inline int timer_pending(const struct timer_list *timer)
{
@@ -36,8 +31,9 @@ static inline int timer_pending(const struct timer_list *timer)
int del_timer(struct timer_list * timer);
int del_timer_sync(struct timer_list *timer);
+#define del_singleshot_timer_sync(timer) del_timer_sync(timer)
+
int mod_timer(struct timer_list *timer, unsigned long expires);
-//extern int mod_timer_pending(struct timer_list *timer, unsigned long expires);
static inline void add_timer(struct timer_list *timer)
{
diff --git a/include/linux/workqueue.h b/include/linux/workqueue.h
index 213562f2..1406c958 100644
--- a/include/linux/workqueue.h
+++ b/include/linux/workqueue.h
@@ -8,7 +8,7 @@ struct task_struct;
struct workqueue_struct;
struct work_struct;
typedef void (*work_func_t)(struct work_struct *work);
-void delayed_work_timer_fn(unsigned long __data);
+void delayed_work_timer_fn(struct timer_list *);
#define work_data_bits(work) ((unsigned long *)(&(work)->data))
@@ -44,9 +44,7 @@ struct delayed_work {
#define INIT_DELAYED_WORK(_work, _func) \
do { \
INIT_WORK(&(_work)->work, (_func)); \
- __setup_timer(&(_work)->timer, delayed_work_timer_fn, \
- (unsigned long)(_work), \
- TIMER_IRQSAFE); \
+ timer_setup(&(_work)->timer, delayed_work_timer_fn, 0); \
} while (0)
static inline struct delayed_work *to_delayed_work(struct work_struct *work)