;=----------------------------------------------------------------------------=; ; GNU GPL OS/K ; ; ; ; Desc: Interrupt Descriptor Table related functions ; ; ; ; ; ; Copyright © 2018-2019 The OS/K Team ; ; ; ; This file is part of OS/K. ; ; ; ; OS/K is free software: you can redistribute it and/or modify ; ; it under the terms of the GNU General Public License as published by ; ; the Free Software Foundation, either version 3 of the License, or ; ; (at your option) any later version. ; ; ; ; OS/K is distributed in the hope that it will be useful, ; ; but WITHOUT ANY WARRANTY; without even the implied warranty of ; ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ; ; GNU General Public License for more details. ; ; ; ; You should have received a copy of the GNU General Public License ; ; along with OS/K. If not, see . ; ;=----------------------------------------------------------------------------=; %include "kaleid/kernel/cpu/isr.inc" global CpuIdtInit global divideByZero extern idtPtr extern IdtHandler ;; ;; Loads the IDT ;; CpuIdtInit: lidt [idtPtr] ret ;; ;; Bug test ;; divideByZero: pushAll mov eax, 17 mov ebx, 0 xor edx, edx div ebx popAll ret ;; ;; ISR handler ;; isrPreHandler: pushAll xor rax, rax mov ax, ds push rax call IdtHandler pop rax mov ds, ax popAll sti iretq ;; Divide Error Fault IsrWithoutErrCode 0 ;; Debug Exception Fault/trap IsrWithoutErrCode 1 ;; NMI Interrupt IsrWithoutErrCode 2 ;; Breakpoint Trap IsrWithoutErrCode 3 ;; Overflow Trap IsrWithoutErrCode 4 ;; Bound Range Exceeded Fault IsrWithoutErrCode 5 ;; Invalid Opcode Fault IsrWithoutErrCode 6 ;; Device Not Available or No Math Coprocessor Fault IsrWithoutErrCode 7 ;; Coprocessor Segment Overrun Fault IsrWithoutErrCode 9 ;; x87 FPU Floating Point or Math Fault IsrWithoutErrCode 16 ;; Alignment Check Fault IsrWithoutErrCode 17 ;; Machine Check Abort IsrWithoutErrCode 18 ;; SIMD Floating Point Fault IsrWithoutErrCode 19 ;; Virtualization Exception Fault IsrWithoutErrCode 20 ;; Double Fault Abort IsrWithErrCode 8 ;; Invalid TSS Fault IsrWithErrCode 10 ;; Segment Not Present Fault IsrWithErrCode 11 ;; Stack Segment Fault IsrWithErrCode 12 ;; General Protection Fault IsrWithErrCode 13 ;; Page Fault IsrWithErrCode 14 ;; Reserved IsrWithoutErrCode 15 IsrWithoutErrCode 21 IsrWithoutErrCode 22 IsrWithoutErrCode 23 IsrWithoutErrCode 24 IsrWithoutErrCode 25 IsrWithoutErrCode 26 IsrWithoutErrCode 27 IsrWithoutErrCode 28 IsrWithoutErrCode 29 IsrWithoutErrCode 30 IsrWithoutErrCode 31 IsrWithoutErrCode 32