1 #ifndef _LINUX_IRQ_WORK_H 2 #define _LINUX_IRQ_WORK_H 3 4 #include <linux/llist.h> 5 6 struct irq_work { 7 unsigned long flags; 8 struct llist_node llnode; 9 void (*func)(struct irq_work *); 10 }; 11 12 static inline 13 void init_irq_work(struct irq_work *work, void (*func)(struct irq_work *)) 14 { 15 work->flags = 0; 16 work->func = func; 17 } 18 19 bool irq_work_queue(struct irq_work *work); 20 void irq_work_run(void); 21 void irq_work_sync(struct irq_work *work); 22 23 #endif /* _LINUX_IRQ_WORK_H */ 24