#include <asm/kvm_book3s_asm.h>
 #include <asm/export.h>
 #include <asm/feature-fixups.h>
+#include <asm/interrupt.h>
 
 #include "head_32.h"
 
 /* System reset */
 /* core99 pmac starts the seconary here by changing the vector, and
    putting it back to what it was (unknown_async_exception) when done.  */
-       EXCEPTION(0x100, Reset, unknown_async_exception)
+       EXCEPTION(INTERRUPT_SYSTEM_RESET, Reset, unknown_async_exception)
 
 /* Machine check */
 /*
  * pointer when we take an exception from supervisor mode.)
  *     -- paulus.
  */
-       START_EXCEPTION(0x200, MachineCheck)
+       START_EXCEPTION(INTERRUPT_MACHINE_CHECK, MachineCheck)
        EXCEPTION_PROLOG_0
 #ifdef CONFIG_PPC_CHRP
        mtspr   SPRN_SPRG_SCRATCH2,r1
        b       interrupt_return
 
 /* Data access exception. */
-       START_EXCEPTION(0x300, DataAccess)
+       START_EXCEPTION(INTERRUPT_DATA_STORAGE, DataAccess)
 #ifdef CONFIG_PPC_BOOK3S_604
 BEGIN_MMU_FTR_SECTION
        mtspr   SPRN_SPRG_SCRATCH2,r10
 #endif
 1:     EXCEPTION_PROLOG_0 handle_dar_dsisr=1
        EXCEPTION_PROLOG_1
-       EXCEPTION_PROLOG_2 0x300 DataAccess handle_dar_dsisr=1
+       EXCEPTION_PROLOG_2 INTERRUPT_DATA_STORAGE DataAccess handle_dar_dsisr=1
        prepare_transfer_to_handler
        lwz     r5, _DSISR(r11)
        andis.  r0, r5, DSISR_DABRMATCH@h
 
 
 /* Instruction access exception. */
-       START_EXCEPTION(0x400, InstructionAccess)
+       START_EXCEPTION(INTERRUPT_INST_STORAGE, InstructionAccess)
        mtspr   SPRN_SPRG_SCRATCH0,r10
        mtspr   SPRN_SPRG_SCRATCH1,r11
        mfspr   r10, SPRN_SPRG_THREAD
        andi.   r11, r11, MSR_PR
 
        EXCEPTION_PROLOG_1
-       EXCEPTION_PROLOG_2 0x400 InstructionAccess
+       EXCEPTION_PROLOG_2 INTERRUPT_INST_STORAGE InstructionAccess
        andis.  r5,r9,DSISR_SRR1_MATCH_32S@h /* Filter relevant SRR1 bits */
        stw     r5, _DSISR(r11)
        stw     r12, _DAR(r11)
        b       interrupt_return
 
 /* External interrupt */
-       EXCEPTION(0x500, HardwareInterrupt, do_IRQ)
+       EXCEPTION(INTERRUPT_EXTERNAL, HardwareInterrupt, do_IRQ)
 
 /* Alignment exception */
-       START_EXCEPTION(0x600, Alignment)
-       EXCEPTION_PROLOG 0x600 Alignment handle_dar_dsisr=1
+       START_EXCEPTION(INTERRUPT_ALIGNMENT, Alignment)
+       EXCEPTION_PROLOG INTERRUPT_ALIGNMENT Alignment handle_dar_dsisr=1
        prepare_transfer_to_handler
        bl      alignment_exception
        REST_NVGPRS(r1)
        b       interrupt_return
 
 /* Program check exception */
-       START_EXCEPTION(0x700, ProgramCheck)
-       EXCEPTION_PROLOG 0x700 ProgramCheck
+       START_EXCEPTION(INTERRUPT_PROGRAM, ProgramCheck)
+       EXCEPTION_PROLOG INTERRUPT_PROGRAM ProgramCheck
        prepare_transfer_to_handler
        bl      program_check_exception
        REST_NVGPRS(r1)
  */
        b       ProgramCheck
 END_FTR_SECTION_IFSET(CPU_FTR_FPU_UNAVAILABLE)
-       EXCEPTION_PROLOG 0x800 FPUnavailable
+       EXCEPTION_PROLOG INTERRUPT_FP_UNAVAIL FPUnavailable
        beq     1f
        bl      load_up_fpu             /* if from user, just load it up */
        b       fast_exception_return
 #endif
 
 /* Decrementer */
-       EXCEPTION(0x900, Decrementer, timer_interrupt)
+       EXCEPTION(INTERRUPT_DECREMENTER, Decrementer, timer_interrupt)
 
        EXCEPTION(0xa00, Trap_0a, unknown_exception)
        EXCEPTION(0xb00, Trap_0b, unknown_exception)
 
 /* System call */
-       START_EXCEPTION(0xc00, SystemCall)
-       SYSCALL_ENTRY   0xc00
+       START_EXCEPTION(INTERRUPT_SYSCALL, SystemCall)
+       SYSCALL_ENTRY   INTERRUPT_SYSCALL
 
-       EXCEPTION(0xd00, SingleStep, single_step_exception)
+       EXCEPTION(INTERRUPT_TRACE, SingleStep, single_step_exception)
        EXCEPTION(0xe00, Trap_0e, unknown_exception)
 
 /*
  * non-altivec kernel running on a machine with altivec just
  * by executing an altivec instruction.
  */
-       START_EXCEPTION(0xf00, PerformanceMonitorTrap)
+       START_EXCEPTION(INTERRUPT_PERFMON, PerformanceMonitorTrap)
        b       PerformanceMonitor
 
-       START_EXCEPTION(0xf20, AltiVecUnavailableTrap)
+       START_EXCEPTION(INTERRUPT_ALTIVEC_UNAVAIL, AltiVecUnavailableTrap)
        b       AltiVecUnavailable
 
        __HEAD
  * Handle TLB miss for instruction on 603/603e.
  * Note: we get an alternate set of r0 - r3 to use automatically.
  */
-       . = 0x1000
+       . = INTERRUPT_INST_TLB_MISS_603
 InstructionTLBMiss:
 /*
  * r0: scratch
 /*
  * Handle TLB miss for DATA Load operation on 603/603e
  */
-       . = 0x1100
+       . = INTERRUPT_DATA_LOAD_TLB_MISS_603
 DataLoadTLBMiss:
 /*
  * r0: scratch
 /*
  * Handle TLB miss for DATA Store on 603/603e
  */
-       . = 0x1200
+       . = INTERRUPT_DATA_STORE_TLB_MISS_603
 DataStoreTLBMiss:
 /*
  * r0: scratch