; -*- 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 exit_test
-EXTERN handle_svm_exit
-EXPORT launch_svm
EXPORT safe_svm_launch
EXPORT STGI
;CLGI equ db 0x0F,0x01,0xDD
-align 8
-DisableInts:
- cli
- ret
-
-
align 8
CLGI:
-; I think its safe to say that there are some pretty serious register issues...
-align 8
-launch_svm:
- push ebp
- mov ebp, esp
- pusha
-
- mov eax, [ebp + 8]
- vmrun
-; db 00fh, 001h, 0d8h
- popa
- pop ebp
- ret
-
-
-
-
-exit_test:
- mov cr4, eax
- ret
-
;; Need to check this..
;; save_svm_launch(rax, struct guest_gprs * regs)
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