1 /* 2 * Copyright 2007-2009 Analog Devices Inc. 3 * 4 * Licensed under the GPL-2 or later. 5 */ 6 7 #ifndef _IRQ_HANDLER_H 8 #define _IRQ_HANDLER_H 9 10 #include <linux/types.h> 11 #include <linux/linkage.h> 12 #include <mach/irq.h> 13 14 /* init functions only */ 15 extern int init_arch_irq(void); 16 extern void init_exception_vectors(void); 17 extern void program_IAR(void); 18 #ifdef init_mach_irq 19 extern void init_mach_irq(void); 20 #else 21 # define init_mach_irq() 22 #endif 23 24 /* BASE LEVEL interrupt handler routines */ 25 asmlinkage void evt_exception(void); 26 asmlinkage void trap(void); 27 asmlinkage void evt_ivhw(void); 28 asmlinkage void evt_timer(void); 29 asmlinkage void evt_nmi(void); 30 asmlinkage void evt_evt7(void); 31 asmlinkage void evt_evt8(void); 32 asmlinkage void evt_evt9(void); 33 asmlinkage void evt_evt10(void); 34 asmlinkage void evt_evt11(void); 35 asmlinkage void evt_evt12(void); 36 asmlinkage void evt_evt13(void); 37 asmlinkage void evt_evt14(void); 38 asmlinkage void evt_soft_int1(void); 39 asmlinkage void evt_system_call(void); 40 asmlinkage void init_exception_buff(void); 41 asmlinkage void trap_c(struct pt_regs *fp); 42 asmlinkage void ex_replaceable(void); 43 asmlinkage void early_trap(void); 44 45 extern void *ex_table[]; 46 extern void return_from_exception(void); 47 48 extern int bfin_request_exception(unsigned int exception, void (*handler)(void)); 49 extern int bfin_free_exception(unsigned int exception, void (*handler)(void)); 50 51 extern asmlinkage void lower_to_irq14(void); 52 extern asmlinkage void bfin_return_from_exception(void); 53 extern asmlinkage void asm_do_IRQ(unsigned int irq, struct pt_regs *regs); 54 extern int bfin_internal_set_wake(unsigned int irq, unsigned int state); 55 56 struct irq_data; 57 extern void bfin_handle_irq(unsigned irq); 58 extern void bfin_ack_noop(struct irq_data *); 59 extern void bfin_internal_mask_irq(unsigned int irq); 60 extern void bfin_internal_unmask_irq(unsigned int irq); 61 62 struct irq_desc; 63 extern void bfin_demux_mac_status_irq(struct irq_desc *); 64 extern void bfin_demux_gpio_irq(struct irq_desc *); 65 66 #endif 67