; 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.7 $
+; $Revision: 1.8 $
; This is free software. You are permitted to use,
; redistribute, and modify it as specified in the file "COPYING".
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 esi
+; call SerialPrintHex
+; pop esi
- push eax
- mov eax, 0xa
- push eax
- call SerialPutChar
- pop eax
- pop eax
+; 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,
Restore_Registers
- pusha
+; pusha
- mov eax, 0xaa
- push eax
- call SerialPrintHex
- pop eax
+; mov eax, 0xaa
+; push eax
+; call SerialPrintHex
+; pop eax
- mov eax, 0xa
- push eax
- call SerialPutChar
- pop eax
+; mov eax, 0xa
+; push eax
+; call SerialPutChar
+; pop eax
- popa
+; popa
; Return from the interrupt.
iret
CLGI();
- PrintDebug("SVM Entry...\n");
+ // PrintDebug("SVM Entry...\n");
rdtscll(info->time_state.cached_host_tsc);
guest_ctrl->TSC_OFFSET = info->time_state.guest_tsc - info->time_state.cached_host_tsc;
safe_svm_launch((vmcb_t*)(info->vmm_data), &(info->vm_regs));
rdtscll(tmp_tsc);
- PrintDebug("SVM Returned\n");
+ //PrintDebug("SVM Returned\n");
v3_update_time(info, tmp_tsc - info->time_state.cached_host_tsc);