| 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 */ | ||||