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