Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


added memory region generated page tables, and removed all the ugliness that was...
[palacios.git] / palacios / include / geekos / svm.h
index fccddc2..84c48dd 100644 (file)
@@ -1,7 +1,9 @@
 #ifndef __SVM_H
 #define __SVM_H
 
+#include <geekos/vmm_util.h>
 #include <geekos/vmm.h>
+#include <geekos/vmcb.h>
 
 #define CPUID_FEATURE_IDS 0x80000001
 #define CPUID_FEATURE_IDS_ecx_svm_avail 0x00000004
@@ -38,6 +40,7 @@
 #define SVM_SMM_CTL_MSR_rsm_cycle 0x00000010
 
 #define SVM_VM_HSAVE_PA_MSR      0xc0010117
+
 #define SVM_KEY_MSR              0xc0010118
 
 /******/
@@ -45,7 +48,7 @@
 
 
 /******************************************/
-/* SVM Intercep Exit Codes                */
+/* SVM Intercept Exit Codes               */
 /* AMD Arch Vol 3, Appendix C, pg 477-478 */
 /******************************************/
 #define VMEXIT_CR_READ_MASK 0xfffffff0
 
 
 
-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