Blame view

include/linux/irq_work.h 460 Bytes
e360adbe2   Peter Zijlstra   irq_work: Add gen...
1
2
  #ifndef _LINUX_IRQ_WORK_H
  #define _LINUX_IRQ_WORK_H
38aaf8090   Huang Ying   irq_work: Use lli...
3
  #include <linux/llist.h>
e360adbe2   Peter Zijlstra   irq_work: Add gen...
4
  struct irq_work {
38aaf8090   Huang Ying   irq_work: Use lli...
5
6
  	unsigned long flags;
  	struct llist_node llnode;
e360adbe2   Peter Zijlstra   irq_work: Add gen...
7
8
9
10
  	void (*func)(struct irq_work *);
  };
  
  static inline
38aaf8090   Huang Ying   irq_work: Use lli...
11
  void init_irq_work(struct irq_work *work, void (*func)(struct irq_work *))
e360adbe2   Peter Zijlstra   irq_work: Add gen...
12
  {
38aaf8090   Huang Ying   irq_work: Use lli...
13
14
  	work->flags = 0;
  	work->func = func;
e360adbe2   Peter Zijlstra   irq_work: Add gen...
15
  }
38aaf8090   Huang Ying   irq_work: Use lli...
16
  bool irq_work_queue(struct irq_work *work);
e360adbe2   Peter Zijlstra   irq_work: Add gen...
17
  void irq_work_run(void);
38aaf8090   Huang Ying   irq_work: Use lli...
18
  void irq_work_sync(struct irq_work *work);
e360adbe2   Peter Zijlstra   irq_work: Add gen...
19
20
  
  #endif /* _LINUX_IRQ_WORK_H */