1 | /* |
---|---|
2 | * irq.c |
3 | * |
4 | * (C) Copyright 2007, Greg Ungerer <gerg@snapgear.com> |
5 | * |
6 | * This file is subject to the terms and conditions of the GNU General Public |
7 | * License. See the file COPYING in the main directory of this archive |
8 | * for more details. |
9 | */ |
10 | |
11 | #include <linux/types.h> |
12 | #include <linux/init.h> |
13 | #include <linux/kernel.h> |
14 | #include <linux/kernel_stat.h> |
15 | #include <linux/interrupt.h> |
16 | #include <linux/irq.h> |
17 | #include <linux/seq_file.h> |
18 | #include <asm/traps.h> |
19 | |
20 | asmlinkage void do_IRQ(int irq, struct pt_regs *regs) |
21 | { |
22 | struct pt_regs *oldregs = set_irq_regs(regs); |
23 | |
24 | irq_enter(); |
25 | generic_handle_irq(irq); |
26 | irq_exit(); |
27 | |
28 | set_irq_regs(oldregs); |
29 | } |
30 | |
31 | |
32 | /* The number of spurious interrupts */ |
33 | atomic_t irq_err_count; |
34 | |
35 | int arch_show_interrupts(struct seq_file *p, int prec) |
36 | { |
37 | seq_printf(m: p, fmt: "%*s: %10u\n", prec, "ERR", atomic_read(v: &irq_err_count)); |
38 | return 0; |
39 | } |
40 |