1 /* 2 * include/asm-parisc/irq.h 3 * 4 * Copyright 2005 Matthew Wilcox <matthew@wil.cx> 5 */ 6 7 #ifndef _ASM_PARISC_IRQ_H 8 #define _ASM_PARISC_IRQ_H 9 10 #include <linux/cpumask.h> 11 #include <asm/types.h> 12 13 #define NO_IRQ (-1) 14 15 #ifdef CONFIG_GSC 16 #define GSC_IRQ_BASE 16 17 #define GSC_IRQ_MAX 63 18 #define CPU_IRQ_BASE 64 19 #else 20 #define CPU_IRQ_BASE 16 21 #endif 22 23 #define TIMER_IRQ (CPU_IRQ_BASE + 0) 24 #define IPI_IRQ (CPU_IRQ_BASE + 1) 25 #define CPU_IRQ_MAX (CPU_IRQ_BASE + (BITS_PER_LONG - 1)) 26 27 #define NR_IRQS (CPU_IRQ_MAX + 1) 28 29 static __inline__ int irq_canonicalize(int irq) 30 { 31 return (irq == 2) ? 9 : irq; 32 } 33 34 struct irq_chip; 35 36 /* 37 * Some useful "we don't have to do anything here" handlers. Should 38 * probably be provided by the generic code. 39 */ 40 void no_ack_irq(unsigned int irq); 41 void no_end_irq(unsigned int irq); 42 void cpu_ack_irq(unsigned int irq); 43 void cpu_end_irq(unsigned int irq); 44 45 extern int txn_alloc_irq(unsigned int nbits); 46 extern int txn_claim_irq(int); 47 extern unsigned int txn_alloc_data(unsigned int); 48 extern unsigned long txn_alloc_addr(unsigned int); 49 extern unsigned long txn_affinity_addr(unsigned int irq, int cpu); 50 51 extern int cpu_claim_irq(unsigned int irq, struct irq_chip *, void *); 52 extern int cpu_check_affinity(unsigned int irq, const struct cpumask *dest); 53 54 /* soft power switch support (power.c) */ 55 extern struct tasklet_struct power_tasklet; 56 57 #endif /* _ASM_PARISC_IRQ_H */ 58