inttable.S 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. /*++
  2. Copyright (c) 2012 Minoca Corp. All Rights Reserved
  3. Module Name:
  4. inttable.s
  5. Abstract:
  6. This module implements the interrupt jump vector table for ARM processors.
  7. Author:
  8. Evan Green 11-Aug-2012
  9. Environment:
  10. Kernel
  11. --*/
  12. ##
  13. ## ---------------------------------------------------------------- Definitions
  14. ##
  15. #include <minoca/kernel/arm.inc>
  16. ##
  17. ## ----------------------------------------------------------------------- Code
  18. ##
  19. ASSEMBLY_FILE_HEADER
  20. ##
  21. ## .global allows this label to be visible to the linker.
  22. ##
  23. .global ArArmInterruptTable
  24. ##
  25. ## This address must be aligned to a 32 byte address so that it can be set in
  26. ## the VBAR register.
  27. ##
  28. .balign 32
  29. ArArmInterruptTable:
  30. ldr %pc, ArArmResetVector
  31. ldr %pc, ArArmUndefinedInstructionVector
  32. ldr %pc, ArArmSoftwareInterruptVector
  33. ldr %pc, ArArmPrefetchAbortVector
  34. ldr %pc, ArArmDataAbortVector
  35. .word 0
  36. ldr %pc, ArArmIrqInterruptVector
  37. ldr %pc, ArArmFiqInterruptVector
  38. ArArmUndefinedInstructionVector:
  39. .word ArpUndefinedInstructionEntry
  40. ArArmSoftwareInterruptVector:
  41. .word ArpSoftwareInterruptEntry
  42. ArArmPrefetchAbortVector:
  43. .word ArpPrefetchAbortEntry
  44. ArArmDataAbortVector:
  45. .word ArpDataAbortEntry
  46. ArArmIrqInterruptVector:
  47. .word ArpIrqEntry
  48. ArArmFiqInterruptVector:
  49. .word ArpFiqEntry
  50. ArArmResetVector:
  51. .word ArpFiqEntry