X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?p=palacios.git;a=blobdiff_plain;f=palacios%2Fsrc%2Fgeekos%2Flowlevel.asm;h=1e2f409d50d258853fe2818c68c36f03ee1e4cec;hp=1758b8f470459f73016e2d27dfd087a7d61d140e;hb=a4b341afa075a6620dd087ee3a8ed850730c05c7;hpb=645c766b13d15fd70cd360e577eac1f62e07149f diff --git a/palacios/src/geekos/lowlevel.asm b/palacios/src/geekos/lowlevel.asm index 1758b8f..1e2f409 100644 --- a/palacios/src/geekos/lowlevel.asm +++ b/palacios/src/geekos/lowlevel.asm @@ -2,7 +2,7 @@ ; Low level interrupt/thread handling code for GeekOS. ; Copyright (c) 2001,2003,2004 David H. Hovemeyer ; Copyright (c) 2003, Jeffrey K. Hollingsworth -; $Revision: 1.6 $ +; $Revision: 1.7 $ ; This is free software. You are permitted to use, ; redistribute, and modify it as specified in the file "COPYING". @@ -126,6 +126,7 @@ IMPORT Make_Runnable ; Function to activate a new user context (if needed). IMPORT Switch_To_User_Context +; Debug functions IMPORT SerialPrintHex IMPORT SerialPutChar @@ -424,6 +425,17 @@ Handle_Interrupt: 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. @@ -503,6 +515,21 @@ Handle_Interrupt: ; 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