1 /* 2 * Copyright (C) 2006 Atmark Techno, Inc. 3 * 4 * This file is subject to the terms and conditions of the GNU General Public 5 * License. See the file "COPYING" in the main directory of this archive 6 * for more details. 7 */ 8 9 #ifndef _ASM_MICROBLAZE_IRQ_H 10 #define _ASM_MICROBLAZE_IRQ_H 11 12 13 /* 14 * Linux IRQ# is currently offset by one to map to the hardware 15 * irq number. So hardware IRQ0 maps to Linux irq 1. 16 */ 17 #define NO_IRQ_OFFSET 1 18 #define IRQ_OFFSET NO_IRQ_OFFSET 19 #define NR_IRQS (32 + IRQ_OFFSET) 20 #include <asm-generic/irq.h> 21 22 /* This type is the placeholder for a hardware interrupt number. It has to 23 * be big enough to enclose whatever representation is used by a given 24 * platform. 25 */ 26 typedef unsigned long irq_hw_number_t; 27 28 extern unsigned int nr_irq; 29 30 struct pt_regs; 31 extern void do_IRQ(struct pt_regs *regs); 32 33 /** FIXME - not implement 34 * irq_dispose_mapping - Unmap an interrupt 35 * @virq: linux virq number of the interrupt to unmap 36 */ 37 static inline void irq_dispose_mapping(unsigned int virq) 38 { 39 return; 40 } 41 42 struct irq_host; 43 44 /** 45 * irq_create_mapping - Map a hardware interrupt into linux virq space 46 * @host: host owning this hardware interrupt or NULL for default host 47 * @hwirq: hardware irq number in that host space 48 * 49 * Only one mapping per hardware interrupt is permitted. Returns a linux 50 * virq number. 51 * If the sense/trigger is to be specified, set_irq_type() should be called 52 * on the number returned from that call. 53 */ 54 extern unsigned int irq_create_mapping(struct irq_host *host, 55 irq_hw_number_t hwirq); 56 57 #endif /* _ASM_MICROBLAZE_IRQ_H */ 58