xref: /openbmc/linux/include/linux/irq_poll.h (revision b2441318)
1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
2511cbce2SChristoph Hellwig #ifndef IRQ_POLL_H
3511cbce2SChristoph Hellwig #define IRQ_POLL_H
4511cbce2SChristoph Hellwig 
5511cbce2SChristoph Hellwig struct irq_poll;
6511cbce2SChristoph Hellwig typedef int (irq_poll_fn)(struct irq_poll *, int);
7511cbce2SChristoph Hellwig 
8511cbce2SChristoph Hellwig struct irq_poll {
9511cbce2SChristoph Hellwig 	struct list_head list;
10511cbce2SChristoph Hellwig 	unsigned long state;
11511cbce2SChristoph Hellwig 	int weight;
12511cbce2SChristoph Hellwig 	irq_poll_fn *poll;
13511cbce2SChristoph Hellwig };
14511cbce2SChristoph Hellwig 
15511cbce2SChristoph Hellwig enum {
16511cbce2SChristoph Hellwig 	IRQ_POLL_F_SCHED	= 0,
17511cbce2SChristoph Hellwig 	IRQ_POLL_F_DISABLE	= 1,
18511cbce2SChristoph Hellwig };
19511cbce2SChristoph Hellwig 
20511cbce2SChristoph Hellwig extern void irq_poll_sched(struct irq_poll *);
21511cbce2SChristoph Hellwig extern void irq_poll_init(struct irq_poll *, int, irq_poll_fn *);
22511cbce2SChristoph Hellwig extern void irq_poll_complete(struct irq_poll *);
23511cbce2SChristoph Hellwig extern void irq_poll_enable(struct irq_poll *);
24511cbce2SChristoph Hellwig extern void irq_poll_disable(struct irq_poll *);
25511cbce2SChristoph Hellwig 
26511cbce2SChristoph Hellwig #endif
27