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.


minor changes to organization
[palacios.git] / palacios / include / palacios / vmm_ctrl_regs.h
index 3cc1932..0b3336a 100644 (file)
 #define EFER_MSR                 0xc0000080
 
 // KCH: for system-call interposition
-#define STAR_MSR                 0xc0000081
-#define LSTAR_MSR                0xc0000082
-#define CSTAR_MSR                0xc0000083
-#define SF_MASK_MSR              0xc0000084
-#define FS_BASE_MSR              0xc0000100
-#define GS_BASE_MSR              0xc0000101
-#define KERN_GS_BASE_MSR         0xc0000102
+#define STAR_MSR                 0xc0000081 /* Legacy mode SYSCALL target */
+#define LSTAR_MSR                0xc0000082 /* Long mode SYSCALL target */
+#define CSTAR_MSR                0xc0000083 /* compat mode SYSCALL target */
+#define SF_MASK_MSR              0xc0000084 /* EFLAGS mask for syscall */
+#define FS_BASE_MSR              0xc0000100 /* 64-bit FS base */
+#define GS_BASE_MSR              0xc0000101 /* 64-bit GS base */
+#define KERN_GS_BASE_MSR         0xc0000102 /* swapGS GS shadow */
+
+/* Intel specific */
+#define IA32_SYSENTER_CS_MSR     0x00000174
+#define IA32_SYSENTER_ESP_MSR    0x00000175
+#define IA32_SYSENTER_EIP_MSR    0x00000176
 
 struct cr0_real {
     uint_t pe    : 1;
@@ -231,6 +236,9 @@ int v3_handle_lstar_read(struct guest_info * core, uint_t msr, struct v3_msr * d
 int v3_handle_cstar_write(struct guest_info * core, uint_t msr, struct v3_msr src, void * priv_data);
 int v3_handle_cstar_read(struct guest_info * core, uint_t msr, struct v3_msr * dst, void * priv_data);
 
+int v3_handle_seeip_write(struct guest_info * core, uint_t msr, struct v3_msr src, void * priv_data);
+int v3_handle_seeip_read(struct guest_info * core, uint_t msr, struct v3_msr * dst, void * priv_data);
+
 int v3_handle_vm_cr_write(struct guest_info * core, uint_t msr, struct v3_msr src, void * priv_data);
 int v3_handle_vm_cr_read(struct guest_info * core, uint_t msr, struct v3_msr * dst, void * priv_data);