This source file includes following definitions.
- do_IRQ
- init_IRQ
   1 
   2 
   3 
   4 
   5 
   6 
   7 
   8 
   9 
  10 
  11 #include <linux/init.h>
  12 #include <linux/ftrace.h>
  13 #include <linux/kernel.h>
  14 #include <linux/hardirq.h>
  15 #include <linux/interrupt.h>
  16 #include <linux/irqflags.h>
  17 #include <linux/seq_file.h>
  18 #include <linux/kernel_stat.h>
  19 #include <linux/irq.h>
  20 #include <linux/irqchip.h>
  21 #include <linux/of_irq.h>
  22 
  23 static u32 concurrent_irq;
  24 
  25 void __irq_entry do_IRQ(struct pt_regs *regs)
  26 {
  27         unsigned int irq;
  28         struct pt_regs *old_regs = set_irq_regs(regs);
  29         trace_hardirqs_off();
  30 
  31         irq_enter();
  32         irq = xintc_get_irq();
  33 next_irq:
  34         BUG_ON(!irq);
  35         generic_handle_irq(irq);
  36 
  37         irq = xintc_get_irq();
  38         if (irq != -1U) {
  39                 pr_debug("next irq: %d\n", irq);
  40                 ++concurrent_irq;
  41                 goto next_irq;
  42         }
  43 
  44         irq_exit();
  45         set_irq_regs(old_regs);
  46         trace_hardirqs_on();
  47 }
  48 
  49 void __init init_IRQ(void)
  50 {
  51         
  52         irqchip_init();
  53 }