irq_work.h 460 B

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