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 */ 15extern int init_arch_irq(void); 16extern void init_exception_vectors(void); 17extern void program_IAR(void); 18#ifdef init_mach_irq 19extern void init_mach_irq(void); 20#else 21# define init_mach_irq() 22#endif 23 24/* BASE LEVEL interrupt handler routines */ 25asmlinkage void evt_exception(void); 26asmlinkage void trap(void); 27asmlinkage void evt_ivhw(void); 28asmlinkage void evt_timer(void); 29asmlinkage void evt_nmi(void); 30asmlinkage void evt_evt7(void); 31asmlinkage void evt_evt8(void); 32asmlinkage void evt_evt9(void); 33asmlinkage void evt_evt10(void); 34asmlinkage void evt_evt11(void); 35asmlinkage void evt_evt12(void); 36asmlinkage void evt_evt13(void); 37asmlinkage void evt_evt14(void); 38asmlinkage void evt_soft_int1(void); 39asmlinkage void evt_system_call(void); 40asmlinkage void init_exception_buff(void); 41asmlinkage void trap_c(struct pt_regs *fp); 42asmlinkage void ex_replaceable(void); 43asmlinkage void early_trap(void); 44 45extern void *ex_table[]; 46extern void return_from_exception(void); 47 48extern int bfin_request_exception(unsigned int exception, void (*handler)(void)); 49extern int bfin_free_exception(unsigned int exception, void (*handler)(void)); 50 51extern asmlinkage void lower_to_irq14(void); 52extern asmlinkage void bfin_return_from_exception(void); 53extern asmlinkage void asm_do_IRQ(unsigned int irq, struct pt_regs *regs); 54extern int bfin_internal_set_wake(unsigned int irq, unsigned int state); 55 56struct irq_data; 57extern void bfin_handle_irq(unsigned irq); 58extern void bfin_ack_noop(struct irq_data *); 59extern void bfin_internal_mask_irq(unsigned int irq); 60extern void bfin_internal_unmask_irq(unsigned int irq); 61 62struct irq_desc; 63extern void bfin_demux_mac_status_irq(struct irq_desc *); 64extern void bfin_demux_gpio_irq(struct irq_desc *); 65 66#endif 67