1 /* 2 * linux/arch/m32r/kernel/irq.c 3 * 4 * Copyright (c) 2003, 2004 Hitoshi Yamamoto 5 * Copyright (c) 2004 Hirokazu Takata <takata at linux-m32r.org> 6 */ 7 8 /* 9 * linux/arch/i386/kernel/irq.c 10 * 11 * Copyright (C) 1992, 1998 Linus Torvalds, Ingo Molnar 12 * 13 * This file contains the lowest level m32r-specific interrupt 14 * entry and irq statistics code. All the remaining irq logic is 15 * done by the generic kernel/irq/ code and in the 16 * m32r-specific irq controller code. 17 */ 18 19 #include <linux/kernel_stat.h> 20 #include <linux/interrupt.h> 21 #include <linux/module.h> 22 #include <asm/uaccess.h> 23 24 /* 25 * do_IRQ handles all normal device IRQs (the special 26 * SMP cross-CPU interrupts have their own specific 27 * handlers). 28 */ do_IRQ(int irq,struct pt_regs * regs)29asmlinkage unsigned int do_IRQ(int irq, struct pt_regs *regs) 30 { 31 struct pt_regs *old_regs; 32 old_regs = set_irq_regs(regs); 33 irq_enter(); 34 35 #ifdef CONFIG_DEBUG_STACKOVERFLOW 36 /* FIXME M32R */ 37 #endif 38 generic_handle_irq(irq); 39 irq_exit(); 40 set_irq_regs(old_regs); 41 42 return 1; 43 } 44