blob: e4ce5cceac34c6c3edd931dfcd8b556e807d9b8f [file] [log] [blame]
Nicholas Flintham1e3d3112013-04-10 10:48:38 +01001#ifndef _LINUX_IRQ_WORK_H
2#define _LINUX_IRQ_WORK_H
3
4#include <linux/llist.h>
5
6struct irq_work {
7 unsigned long flags;
8 struct llist_node llnode;
9 void (*func)(struct irq_work *);
10};
11
12static inline
13void init_irq_work(struct irq_work *work, void (*func)(struct irq_work *))
14{
15 work->flags = 0;
16 work->func = func;
17}
18
19bool irq_work_queue(struct irq_work *work);
20void irq_work_run(void);
21void irq_work_sync(struct irq_work *work);
22
23#endif