blob: 16aaeccb65cbd24767dd5cf60068d352b885b924 [file] [log] [blame]
Greg Kroah-Hartmanb2441312017-11-01 15:07:57 +01001/* SPDX-License-Identifier: GPL-2.0 */
Christoph Hellwig511cbce2015-11-10 14:56:14 +01002#ifndef IRQ_POLL_H
3#define IRQ_POLL_H
4
5struct irq_poll;
6typedef int (irq_poll_fn)(struct irq_poll *, int);
7
8struct irq_poll {
9 struct list_head list;
10 unsigned long state;
Christoph Hellwig511cbce2015-11-10 14:56:14 +010011 int weight;
Christoph Hellwig511cbce2015-11-10 14:56:14 +010012 irq_poll_fn *poll;
13};
14
15enum {
16 IRQ_POLL_F_SCHED = 0,
17 IRQ_POLL_F_DISABLE = 1,
18};
19
Christoph Hellwig511cbce2015-11-10 14:56:14 +010020extern void irq_poll_sched(struct irq_poll *);
21extern void irq_poll_init(struct irq_poll *, int, irq_poll_fn *);
22extern void irq_poll_complete(struct irq_poll *);
Christoph Hellwig511cbce2015-11-10 14:56:14 +010023extern void irq_poll_enable(struct irq_poll *);
24extern void irq_poll_disable(struct irq_poll *);
25
26#endif