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 12struct 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 31struct siginfo; 32extern void sigio_handler(int sig, struct siginfo *unused_si, struct uml_pt_regs *regs); 33extern void free_irq_by_fd(int fd); 34extern void reactivate_fd(int fd, int irqnum); 35extern void deactivate_fd(int fd, int irqnum); 36extern int deactivate_all_fds(void); 37extern int activate_ipi(int fd, int pid); 38 39#endif 40