text: #ifndef _IRQ_H
  #define _IRQ_H
  
  #define VA_START 0xffff000000000000
  #define DEVICE_BASE 0x3F000000
  #define PBASE (VA_START + DEVICE_BASE)
  
  #define IRQ_BASIC_PENDING (PBASE + 0x0000B200)
  #define IRQ_PENDING_1 (PBASE + 0x0000B204)
  #define IRQ_PENDING_2 (PBASE + 0x0000B208)
  #define FIQ_CONTROL (PBASE + 0x0000B20C)
  #define ENABLE_IRQS_1 (PBASE + 0x0000B210)
  #define ENABLE_IRQS_2 (PBASE + 0x0000B214)
  #define ENABLE_BASIC_IRQS (PBASE + 0x0000B218)
  #define DISABLE_IRQS_1 (PBASE + 0x0000B21C)
  #define DISABLE_IRQS_2 (PBASE + 0x0000B220)
  #define DISABLE_BASIC_IRQS (PBASE + 0x0000B224)
  
  #define SYSTEM_TIMER_IRQ_0 (1 << 0)
  #define SYSTEM_TIMER_IRQ_1 (1 << 1)
  #define SYSTEM_TIMER_IRQ_2 (1 << 2)
  #define SYSTEM_TIMER_IRQ_3 (1 << 3)
  
  #define CORE0_INTERRUPT_SOURCE 0x40000060
  
  void enable_interrupt_controller();
  void handle_irq();
  void enable_irq();
  void disable_irq();
  
  #endif