Peter Zijlstra | e360adb | 2010-10-14 14:01:34 +0800 | [diff] [blame] | 1 | #ifndef _LINUX_IRQ_WORK_H |
2 | #define _LINUX_IRQ_WORK_H | ||||
3 | |||||
4 | struct irq_work { | ||||
5 | struct irq_work *next; | ||||
6 | void (*func)(struct irq_work *); | ||||
7 | }; | ||||
8 | |||||
9 | static inline | ||||
10 | void init_irq_work(struct irq_work *entry, void (*func)(struct irq_work *)) | ||||
11 | { | ||||
12 | entry->next = NULL; | ||||
13 | entry->func = func; | ||||
14 | } | ||||
15 | |||||
16 | bool irq_work_queue(struct irq_work *entry); | ||||
17 | void irq_work_run(void); | ||||
18 | void irq_work_sync(struct irq_work *entry); | ||||
19 | |||||
20 | #endif /* _LINUX_IRQ_WORK_H */ |