aboutsummaryrefslogtreecommitdiff
path: root/x86/gdbstub_int.nasm
diff options
context:
space:
mode:
Diffstat (limited to 'x86/gdbstub_int.nasm')
-rw-r--r--x86/gdbstub_int.nasm110
1 files changed, 0 insertions, 110 deletions
diff --git a/x86/gdbstub_int.nasm b/x86/gdbstub_int.nasm
deleted file mode 100644
index 2495971..0000000
--- a/x86/gdbstub_int.nasm
+++ /dev/null
@@ -1,110 +0,0 @@
-;
-; Copyright (c) 2016-2019 Matt Borgerson
-;
-; Permission is hereby granted, free of charge, to any person obtaining a copy
-; of this software and associated documentation files (the "Software"), to deal
-; in the Software without restriction, including without limitation the rights
-; to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-; copies of the Software, and to permit persons to whom the Software is
-; furnished to do so, subject to the following conditions:
-;
-; The above copyright notice and this permission notice shall be included in
-; all copies or substantial portions of the Software.
-;
-; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-; IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-; FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-; AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-; LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-; SOFTWARE.
-;
-
-bits 32
-
-%define NUM_HANDLERS 32
-
-section .data
-global dbg_int_handlers
-
-; Generate table of handlers
-dbg_int_handlers:
-%macro handler_addr 1
- dd dbg_int_handler_%1
-%endmacro
-%assign i 0
-%rep NUM_HANDLERS
- handler_addr i
- %assign i i+1
-%endrep
-
-section .text
-extern dbg_int_handler
-
-%macro int 1
-dbg_int_handler_%1:
- push 0 ; Dummy Error code
- push %1 ; Interrupt Vector
- jmp dbg_int_handler_common
-%endmacro
-
-%macro inte 1
-dbg_int_handler_%1:
- ; Error code already on stack
- push %1 ; Interrupt Vector
- jmp dbg_int_handler_common
-%endmacro
-
-; Generate Interrupt Handlers
-%assign i 0
-%rep NUM_HANDLERS
- %if (i == 8) || ((i >= 10) && (i <= 14)) || (i == 17)
- inte i
- %else
- int i
- %endif
-%assign i i+1
-%endrep
-
-; Common Interrupt Handler
-dbg_int_handler_common:
- pushad
- push ds
- push es
- push fs
- push gs
- push ss
- mov ebp, esp
-
- ; Stack:
- ; - EFLAGS
- ; - CS
- ; - EIP
- ; - ERROR CODE
- ; - VECTOR
- ; - EAX
- ; - ECX
- ; - EDX
- ; - EBX
- ; - ESP
- ; - EBP
- ; - ESI
- ; - EDI
- ; - DS
- ; - ES
- ; - FS
- ; - GS
- ; - SS
-
- push ebp
- call dbg_int_handler
-
- mov esp, ebp
- pop ss
- pop gs
- pop fs
- pop es
- pop ds
- popad
- add esp, 8 ; Pop error & vector
- iret