; -*- fundamental -*-
+;;
+;; This file is part of the Palacios Virtual Machine Monitor developed
+;; by the V3VEE Project with funding from the United States National
+;; Science Foundation and the Department of Energy.
+;;
+;; The V3VEE Project is a joint project between Northwestern University
+;; and the University of New Mexico. You can find out more at
+;; http://www.v3vee.org
+;;
+;; Copyright (c) 2008, Jack Lange <jarusl@cs.northwestern.edu>
+;; Copyright (c) 2008, The V3VEE Project <http://www.v3vee.org>
+;; All rights reserved.
+;;
+;; Author: Jack Lange <jarusl@cs.northwestern.edu>
+;;
+;; This is free software. You are permitted to use,
+;; redistribute, and modify it as specified in the file "V3VEE_LICENSE".
+;;
+
%ifndef SVM_ASM
SVM_ERROR equ 0xFFFFFFFF
SVM_SUCCESS equ 0x00000000
-EXPORT DisableInts
-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
;CLGI equ db 0x0F,0x01,0xDD
-align 8
-DisableInts:
- cli
- ret
-
-
-align 8
-GetGDTR:
- push ebp
- mov ebp, esp
- pusha
- mov ebx, [ebp + 8]
- sgdt [ebx]
-
- popa
- pop ebp
- 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