1 /* 2 * Copyright (C) 2001 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com) 3 * Licensed under the GPL 4 */ 5 6 #ifndef __IRQ_USER_H__ 7 #define __IRQ_USER_H__ 8 9 #include <sysdep/ptrace.h> 10 #include <stdbool.h> 11 12 struct irq_fd { 13 struct irq_fd *next; 14 void *id; 15 int fd; 16 int type; 17 int irq; 18 int events; 19 bool active; 20 bool pending; 21 bool purge; 22 }; 23 24 #define IRQ_READ 0 25 #define IRQ_WRITE 1 26 #define IRQ_NONE 2 27 #define MAX_IRQ_TYPE (IRQ_NONE + 1) 28 29 30 31 struct siginfo; 32 extern void sigio_handler(int sig, struct siginfo *unused_si, struct uml_pt_regs *regs); 33 extern void free_irq_by_fd(int fd); 34 extern void deactivate_fd(int fd, int irqnum); 35 extern int deactivate_all_fds(void); 36 extern int activate_ipi(int fd, int pid); 37 38 #endif 39