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.


integrated new configuration system
[palacios.git] / palacios / include / palacios / svm.h
index 6a7f230..1a9ecfd 100644 (file)
@@ -1,6 +1,21 @@
-/* (c) 2008, Jack Lange <jarusl@cs.northwestern.edu> */
-/* (c) 2008, The V3VEE Project <http://www.v3vee.org> */
-
+/* 
+ * 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_H
 #define __SVM_H
 #include <palacios/vmcb.h>
 #include <palacios/vmm_util.h>
 
-#define CPUID_FEATURE_IDS 0x80000001
-#define CPUID_FEATURE_IDS_ecx_svm_avail 0x00000004
+#define CPUID_EXT_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
 #define EFER_MSR_svm_enable      0x00001000
 
 /************/
 #define SVM_HANDLER_HALT      0x2
 
 
+void v3_init_svm_cpu(int cpu_id);
+int v3_is_svm_capable();
+
+int v3_init_svm_vmcb(struct guest_info * info, v3_vm_class_t vm_class);
 
-void Init_SVM(struct vmm_ctrl_ops * vmm_ops);
-int is_svm_capable();
+int v3_svm_enter(struct guest_info * info);
+int v3_start_svm_guest(struct guest_info *info);
 
 #endif