kernel

hobby kernel
git clone git://git.evenfri.duckdns.org/kernel.git
Log | Files | Refs | README | LICENSE

ints.s (1051B)


      1 .macro isr_no_err_stub num
      2 .global isr_stub_\num
      3 
      4 isr_stub_\num:
      5   pushl $0
      6   pushl $\num
      7   jmp isr_common_stub
      8 .endm
      9 
     10 .macro isr_err_stub num
     11 .global isr_stub_\num
     12 
     13 isr_stub_\num:
     14   pushl $\num /* interrupt number */
     15   jmp isr_common_stub
     16 .endm
     17 
     18 isr_common_stub:
     19   pusha
     20 
     21   movw %ds, %ax
     22   pushl %eax
     23 
     24   movw $0x10, %ax
     25   movw %ax, %ds
     26   movw %ax, %es
     27 
     28   call excp_handler
     29 
     30   popl %eax
     31   movw %ax, %ds
     32   movw %ax, %es
     33   
     34   popa
     35   addl $8, %esp
     36   iret
     37 
     38 isr_no_err_stub 0
     39 isr_no_err_stub 1
     40 isr_no_err_stub 2
     41 isr_no_err_stub 3
     42 isr_no_err_stub 4
     43 isr_no_err_stub 5
     44 isr_no_err_stub 6
     45 isr_no_err_stub 7
     46 isr_err_stub    8
     47 isr_no_err_stub 9
     48 isr_err_stub    10
     49 isr_err_stub    11
     50 isr_err_stub    12
     51 isr_err_stub    13
     52 isr_err_stub    14
     53 isr_no_err_stub 15
     54 isr_no_err_stub 16
     55 isr_err_stub    17
     56 isr_no_err_stub 18
     57 isr_no_err_stub 19
     58 isr_no_err_stub 20
     59 isr_no_err_stub 21
     60 isr_no_err_stub 22
     61 isr_no_err_stub 23
     62 isr_no_err_stub 24
     63 isr_no_err_stub 25
     64 isr_no_err_stub 26
     65 isr_no_err_stub 27
     66 isr_no_err_stub 28
     67 isr_no_err_stub 29
     68 isr_err_stub    30
     69 isr_no_err_stub 31