; Low level interrupt/thread handling code for GeekOS.
; Copyright (c) 2001,2003,2004 David H. Hovemeyer <daveho@cs.umd.edu>
; Copyright (c) 2003, Jeffrey K. Hollingsworth <hollings@cs.umd.edu>
-; $Revision: 1.6 $
+; $Revision: 1.8 $
; This is free software. You are permitted to use,
; redistribute, and modify it as specified in the file "COPYING".
; Function to activate a new user context (if needed).
IMPORT Switch_To_User_Context
+; Debug functions
IMPORT SerialPrintHex
IMPORT SerialPutChar
mov esi, [esp+REG_SKIP] ; get interrupt number
mov ebx, [eax+esi*4] ; get address of handler function
+; push esi
+; call SerialPrintHex
+; pop esi
+
+; push eax
+; mov eax, 0xa
+; push eax
+; call SerialPutChar
+; pop eax
+; pop eax
+
; Call the handler.
; The argument passed is a pointer to an Interrupt_State struct,
; which describes the stack layout for all interrupts.
; Restore registers
Restore_Registers
+
+; pusha
+
+; mov eax, 0xaa
+; push eax
+; call SerialPrintHex
+; pop eax
+
+; mov eax, 0xa
+; push eax
+; call SerialPutChar
+; pop eax
+
+; popa
+
; Return from the interrupt.
iret