interrupt.s 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. .code32
  2. .text
  3. .globl int13
  4. .type int13 @function
  5. int13:
  6. xchgw %bx, %bx
  7. pushal
  8. call int13_handler
  9. popal
  10. # remove the 32bit error code from stack
  11. addl $4, %esp
  12. iret
  13. .globl int14
  14. .type int14 @function
  15. int14:
  16. xchgw %bx, %bx
  17. pushal
  18. movl %cr2, %eax
  19. pushl %eax
  20. call int14_handler
  21. popal
  22. # remove the 32bit error code from stack
  23. addl $4, %esp
  24. iret
  25. .globl irq0
  26. .type irq0 @function
  27. irq0:
  28. pushal
  29. call irq0_handler
  30. popal
  31. iret
  32. .globl irq1
  33. .type irq1 @function
  34. irq1:
  35. pushal
  36. call irq1_handler
  37. popal
  38. iret
  39. .globl irq2
  40. .type irq2 @function
  41. irq2:
  42. pushal
  43. call irq2_handler
  44. popal
  45. iret
  46. .globl irq3
  47. .type irq3 @function
  48. irq3:
  49. pushal
  50. call irq3_handler
  51. popal
  52. iret
  53. .globl irq4
  54. .type irq4 @function
  55. irq4:
  56. pushal
  57. call irq4_handler
  58. popal
  59. iret
  60. .globl irq5
  61. .type irq5 @function
  62. irq5:
  63. pushal
  64. call irq5_handler
  65. popal
  66. iret
  67. .globl irq6
  68. .type irq6 @function
  69. irq6:
  70. pushal
  71. call irq6_handler
  72. popal
  73. iret
  74. .globl irq7
  75. .type irq7 @function
  76. irq7:
  77. pushal
  78. call irq7_handler
  79. popal
  80. iret
  81. .globl irq8
  82. .type irq8 @function
  83. irq8:
  84. pushal
  85. call irq8_handler
  86. popal
  87. iret
  88. .globl irq9
  89. .type irq9 @function
  90. irq9:
  91. pushal
  92. call irq9_handler
  93. popal
  94. iret
  95. .globl irq10
  96. .type irq10 @function
  97. irq10:
  98. pushal
  99. call irq10_handler
  100. popal
  101. iret
  102. .globl irq11
  103. .type irq11 @function
  104. irq11:
  105. pushal
  106. call irq11_handler
  107. popal
  108. iret
  109. .globl irq12
  110. .type irq12 @function
  111. irq12:
  112. pushal
  113. call irq12_handler
  114. popal
  115. iret
  116. .globl irq13
  117. .type irq13 @function
  118. irq13:
  119. pushal
  120. call irq13_handler
  121. popal
  122. iret
  123. .globl irq14
  124. .type irq14 @function
  125. irq14:
  126. pushal
  127. call irq14_handler
  128. popal
  129. iret
  130. .globl irq15
  131. .type irq15 @function
  132. irq15:
  133. pushal
  134. call irq15_handler
  135. popal
  136. iret
  137. .globl asm_load_idt
  138. .type asm_load_idt @function
  139. asm_load_idt:
  140. movl 4(%esp), %edx
  141. lidt (%edx)
  142. sti
  143. ret