1#ifndef _ASM_IRQ_H 2#define _ASM_IRQ_H 3 4/* 5 * linux/include/asm/irq.h 6 * 7 * (C) 1992, 1993 Linus Torvalds, (C) 1997 Ingo Molnar 8 * 9 * IRQ/IPI changes taken from work by Thomas Radke 10 * <tomsoft@informatik.tu-chemnitz.de> 11 */ 12 13#include <linux/config.h> 14 15#define TIMER_IRQ 0 16 17/* 18 * 16 8259A IRQ's, 208 potential APIC interrupt sources. 19 * Right now the APIC is mostly only used for SMP. 20 * 256 vectors is an architectural limit. (we can have 21 * more than 256 devices theoretically, but they will 22 * have to use shared interrupts) 23 * Since vectors 0x00-0x1f are used/reserved for the CPU, 24 * the usable vector space is 0x20-0xff (224 vectors) 25 */ 26#ifdef CONFIG_X86_IO_APIC 27#define NR_IRQS 224 28#else 29#define NR_IRQS 16 30#endif 31 32static __inline__ int irq_cannonicalize(int irq) 33{ 34 return ((irq == 2) ? 9 : irq); 35} 36 37extern void disable_irq(unsigned int); 38extern void disable_irq_nosync(unsigned int); 39extern void enable_irq(unsigned int); 40extern void release_x86_irqs(struct task_struct *); 41 42#ifdef CONFIG_X86_LOCAL_APIC 43#define ARCH_HAS_NMI_WATCHDOG /* See include/linux/nmi.h */ 44#endif 45 46#endif /* _ASM_IRQ_H */ 47

