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 29static __inline__ int irq_canonicalize(int irq) 30{ 31 return (irq == 2) ? 9 : irq; 32} 33 34struct irq_chip; 35struct irq_data; 36 37void cpu_ack_irq(struct irq_data *d); 38void cpu_eoi_irq(struct irq_data *d); 39 40extern int txn_alloc_irq(unsigned int nbits); 41extern int txn_claim_irq(int); 42extern unsigned int txn_alloc_data(unsigned int); 43extern unsigned long txn_alloc_addr(unsigned int); 44extern unsigned long txn_affinity_addr(unsigned int irq, int cpu); 45 46extern int cpu_claim_irq(unsigned int irq, struct irq_chip *, void *); 47extern int cpu_check_affinity(struct irq_data *d, const struct cpumask *dest); 48 49/* soft power switch support (power.c) */ 50extern struct tasklet_struct power_tasklet; 51 52#endif /* _ASM_PARISC_IRQ_H */ 53