12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- #include <linux/kernel_stat.h>
- #include <linux/irq.h>
- #include <linux/smp.h>
- #include <linux/init.h>
- #include <linux/irqchip.h>
- #include <linux/seq_file.h>
- unsigned long irq_err_count;
- DEFINE_PER_CPU(unsigned long [IRQ_STACK_SIZE/sizeof(long)], irq_stack) __aligned(16);
- int arch_show_interrupts(struct seq_file *p, int prec)
- {
- show_ipi_list(p, prec);
- seq_printf(p, "%*s: %10lu\n", prec, "Err", irq_err_count);
- return 0;
- }
- void (*handle_arch_irq)(struct pt_regs *) = NULL;
- void __init set_handle_irq(void (*handle_irq)(struct pt_regs *))
- {
- if (handle_arch_irq)
- return;
- handle_arch_irq = handle_irq;
- }
- void __init init_IRQ(void)
- {
- irqchip_init();
- if (!handle_arch_irq)
- panic("No interrupt controller found.");
- }
|