X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Finclude%2Fpalacios%2Fsvm.h;h=0be1c9a19e6c83ed63964511ce09ac273bd792aa;hb=de3fce7c94e36342005ae5f79fcf22937acde586;hp=9c0912bc52a4497e4d9de9b47dbb52d820f1ffae;hpb=1cf6b8a334fd683681665c177d33ad6c452ad366;p=palacios.git diff --git a/palacios/include/palacios/svm.h b/palacios/include/palacios/svm.h index 9c0912b..0be1c9a 100644 --- a/palacios/include/palacios/svm.h +++ b/palacios/include/palacios/svm.h @@ -1,9 +1,35 @@ +/* + * 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 + * Copyright (c) 2008, The V3VEE Project + * All rights reserved. + * + * Author: Jack Lange + * + * This is free software. You are permitted to use, + * redistribute, and modify it as specified in the file "V3VEE_LICENSE". + */ + #ifndef __SVM_H #define __SVM_H -#include + + + +#ifdef __V3VEE__ + #include + + #include +#include #define CPUID_FEATURE_IDS 0x80000001 #define CPUID_FEATURE_IDS_ecx_svm_avail 0x00000004 @@ -12,8 +38,6 @@ #define CPUID_SVM_REV_AND_FEATURE_IDS_edx_svml 0x00000004 #define CPUID_SVM_REV_AND_FEATURE_IDS_edx_np 0x00000001 - -#define EFER_MSR 0xc0000080 #define EFER_MSR_svm_enable 0x00001000 /************/ @@ -55,21 +79,10 @@ +void v3_init_SVM(struct v3_ctrl_ops * vmm_ops); +int v3_is_svm_capable(); -void Init_SVM(struct vmm_ctrl_ops * vmm_ops); -int is_svm_capable(); - - -vmcb_t * Allocate_VMCB(); -void Init_VMCB(vmcb_t * vmcb, struct guest_info vm_info); -void Init_VMCB_BIOS(vmcb_t * vmcb, struct guest_info vm_info); -void Init_VMCB_pe(vmcb_t * vmcb, struct guest_info vm_info); - -int init_svm_guest(struct guest_info *info); -int start_svm_guest(struct guest_info * info); - - -inline addr_t get_rip_linear(struct guest_info * info, addr_t rip, addr_t cs_base); +#endif