You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
15 lines
598 B
NASM
15 lines
598 B
NASM
[SECTION .text]
|
|
[EXTERN handle_keyboard]
|
|
[GLOBAL handle_keyboard_asm]
|
|
|
|
; entry point for an interrupt to trigger a kernelpanic
|
|
;
|
|
align 16
|
|
handle_keyboard_asm:
|
|
; The interrupt may be triggered asynchronously, therefore the whole context
|
|
; has to be saved and restored, or the interrupted code might not be able to
|
|
; continue. The C++ compiler will only generates code to preserve
|
|
; non-scratch registers in the high-level interrupt handler -- the scratch
|
|
; registers have to be saved (and restored later) manually!
|
|
; TODO(12): Implement the context save and restore for the keyboard interrupt
|