X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Finclude%2Fgeekos%2Fsvm.h;h=6bb23898184abbc71167adf98f38448713bee70f;hb=4939ecae04ce6416f404670640620a23aee9b914;hp=fccddc2515e9e1a884c29c63b5399774ff2f9d32;hpb=828663cb96cc49aaf75ac091f191daac2733003e;p=palacios.releases.git diff --git a/palacios/include/geekos/svm.h b/palacios/include/geekos/svm.h index fccddc2..6bb2389 100644 --- a/palacios/include/geekos/svm.h +++ b/palacios/include/geekos/svm.h @@ -1,13 +1,16 @@ #ifndef __SVM_H #define __SVM_H +#include #include +#include #define CPUID_FEATURE_IDS 0x80000001 #define CPUID_FEATURE_IDS_ecx_svm_avail 0x00000004 #define CPUID_SVM_REV_AND_FEATURE_IDS 0x8000000a #define CPUID_SVM_REV_AND_FEATURE_IDS_edx_svml 0x00000004 +#define CPUID_SVM_REV_AND_FEATURE_IDS_edx_np 0x00000001 #define EFER_MSR 0xc0000080 @@ -38,6 +41,7 @@ #define SVM_SMM_CTL_MSR_rsm_cycle 0x00000010 #define SVM_VM_HSAVE_PA_MSR 0xc0010117 + #define SVM_KEY_MSR 0xc0010118 /******/ @@ -45,7 +49,7 @@ /******************************************/ -/* SVM Intercep Exit Codes */ +/* SVM Intercept Exit Codes */ /* AMD Arch Vol 3, Appendix C, pg 477-478 */ /******************************************/ #define VMEXIT_CR_READ_MASK 0xfffffff0 @@ -208,10 +212,17 @@ -void Init_SVM(); +void Init_SVM(struct vmm_ctrl_ops * vmm_ops); int is_svm_capable(); +vmcb_t * Allocate_VMCB(); +void Init_VMCB(vmcb_t * vmcb, guest_info_t vm_info); + +int init_svm_guest(struct guest_info *info); +int start_svm_guest(struct guest_info * info); + +int handle_svm_exit(struct VMM_GPRs gprs); #endif