os-k/kaleid/kernel/cpu/isr.inc

79 lines
2.5 KiB
PHP
Raw Normal View History

2019-04-22 20:15:48 +02:00
;=----------------------------------------------------------------------------=;
; GNU GPL OS/K ;
; ;
; Desc: Interrupt Descriptor Table related macros ;
; ;
; ;
; 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 <https://www.gnu.org/licenses/>. ;
;=----------------------------------------------------------------------------=;
2019-04-25 23:09:04 +02:00
[BITS 64]
2019-04-22 20:15:48 +02:00
%macro pushAll 0
2019-04-26 20:11:08 +02:00
push r15
push r14
push r13
push r12
push r11
push r10
push r9
push r8
push rbp
push rdi
push rsi
push rdx
push rcx
push rbx
push rax
2019-04-22 20:15:48 +02:00
%endmacro
%macro popAll 0
2019-04-26 20:11:08 +02:00
pop rax
pop rbx
pop rcx
pop rdx
pop rsi
pop rdi
pop rbp
pop r8
pop r9
pop r10
pop r11
pop r12
pop r13
pop r14
pop r15
2019-04-22 20:15:48 +02:00
%endmacro
%macro IsrWithoutErrCode 1
2019-04-25 23:09:04 +02:00
global isr%1
isr%1:
2019-04-22 20:15:48 +02:00
cli
2019-04-26 20:11:08 +02:00
push 0
push %1
2019-04-22 22:32:21 +02:00
jmp isrPreHandler
2019-04-22 20:15:48 +02:00
%endmacro
%macro IsrWithErrCode 1
2019-04-25 23:09:04 +02:00
global isr%1
isr%1:
2019-04-22 20:15:48 +02:00
cli
2019-04-26 20:11:08 +02:00
push %1
2019-04-22 22:32:21 +02:00
jmp isrPreHandler
2019-04-22 20:15:48 +02:00
%endmacro