irq.h (1171B)
1/* SPDX-License-Identifier: GPL-2.0 */ 2/* 3 * include/asm-parisc/irq.h 4 * 5 * Copyright 2005 Matthew Wilcox <matthew@wil.cx> 6 */ 7 8#ifndef _ASM_PARISC_IRQ_H 9#define _ASM_PARISC_IRQ_H 10 11#include <linux/cpumask.h> 12#include <asm/types.h> 13 14#define NO_IRQ (-1) 15 16#ifdef CONFIG_GSC 17#define GSC_IRQ_BASE 16 18#define GSC_IRQ_MAX 63 19#define CPU_IRQ_BASE 64 20#else 21#define CPU_IRQ_BASE 16 22#endif 23 24#define TIMER_IRQ (CPU_IRQ_BASE + 0) 25#define IPI_IRQ (CPU_IRQ_BASE + 1) 26#define CPU_IRQ_MAX (CPU_IRQ_BASE + (BITS_PER_LONG - 1)) 27 28#define NR_IRQS (CPU_IRQ_MAX + 1) 29 30static __inline__ int irq_canonicalize(int irq) 31{ 32 return (irq == 2) ? 9 : irq; 33} 34 35struct irq_chip; 36struct irq_data; 37 38void cpu_ack_irq(struct irq_data *d); 39void cpu_eoi_irq(struct irq_data *d); 40 41extern int txn_alloc_irq(unsigned int nbits); 42extern int txn_claim_irq(int); 43extern unsigned int txn_alloc_data(unsigned int); 44extern unsigned long txn_alloc_addr(unsigned int); 45extern unsigned long txn_affinity_addr(unsigned int irq, int cpu); 46 47extern int cpu_claim_irq(unsigned int irq, struct irq_chip *, void *); 48extern int cpu_check_affinity(struct irq_data *d, const struct cpumask *dest); 49 50#endif /* _ASM_PARISC_IRQ_H */