blob: 3e8c1b8fb9be283dbd9830d7c3b889a5dda96d2d [file] [log] [blame]
Christoph Hellwig511cbce2015-11-10 14:56:14 +01001#ifndef IRQ_POLL_H
2#define IRQ_POLL_H
3
4struct irq_poll;
5typedef int (irq_poll_fn)(struct irq_poll *, int);
6
7struct irq_poll {
8 struct list_head list;
9 unsigned long state;
Christoph Hellwig511cbce2015-11-10 14:56:14 +010010 int weight;
Christoph Hellwig511cbce2015-11-10 14:56:14 +010011 irq_poll_fn *poll;
12};
13
14enum {
15 IRQ_POLL_F_SCHED = 0,
16 IRQ_POLL_F_DISABLE = 1,
17};
18
Christoph Hellwig511cbce2015-11-10 14:56:14 +010019extern void irq_poll_sched(struct irq_poll *);
20extern void irq_poll_init(struct irq_poll *, int, irq_poll_fn *);
21extern void irq_poll_complete(struct irq_poll *);
Christoph Hellwig511cbce2015-11-10 14:56:14 +010022extern void irq_poll_enable(struct irq_poll *);
23extern void irq_poll_disable(struct irq_poll *);
24
25#endif