SVM_SUCCESS equ 0x00000000
EXPORT DisableInts
+EXPORT EnableInts
-EXPORT GetGDTR
-EXPORT GetIDTR
-EXPORT GetTR
EXPORT exit_test
EXPORT launch_svm
EXPORT safe_svm_launch
+EXPORT STGI
+EXPORT CLGI
db 00fh, 001h, 0dah
%endmacro
+%macro stgi 0
+ db 00fh, 001h, 0dch
+%endmacro
+
+%macro clgi 0
+ db 00fh, 001h, 0ddh
+%endmacro
+
;VMRUN equ db 0Fh, 01h, D8h
;VMLOAD equ db 0x0F,0x01,0xDA
;VMSAVE equ db 0x0F,0x01,0xDB
cli
ret
-
align 8
-GetGDTR:
- push ebp
- mov ebp, esp
- pusha
- mov ebx, [ebp + 8]
- sgdt [ebx]
-
- popa
- pop ebp
+EnableInts:
+ sti
ret
align 8
-GetIDTR:
- push ebp
- mov ebp, esp
- pusha
-
- mov ebx, [ebp + 8]
- sidt [ebx]
-
- popa
- pop ebp
+CLGI:
+ clgi
ret
-
-
align 8
-GetTR:
- push ebp
- mov ebp, esp
- pusha
- mov ebx, [ebp + 8]
- str [ebx]
-
- popa
- pop ebp
+STGI:
+ stgi
ret
push ebp
mov ebp, esp
pushf
+ push fs
+ push gs
pusha ;; Save Host state
add esp, 4 ;; skip past the gpr ptr
popa ;; Restore Host state
+ pop gs
+ pop fs
popf
pop ebp
ret