X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Finclude%2Fpalacios%2Fvmm_msr.h;h=87a8a7e5a27769e11c3a51b68e11ba2af2c7338f;hb=5e5c8ee949fa45116d58b904fc11aab082f61607;hp=645baa8a1b6df4ae33c6ca6122fa7fb770ab9a79;hpb=b3662a67b9b28e2b0724ebb2ea10edccba5d2a5b;p=palacios.git diff --git a/palacios/include/palacios/vmm_msr.h b/palacios/include/palacios/vmm_msr.h index 645baa8..87a8a7e 100644 --- a/palacios/include/palacios/vmm_msr.h +++ b/palacios/include/palacios/vmm_msr.h @@ -26,6 +26,19 @@ #include #include +#define SYSENTER_CS_MSR 0x00000174 +#define SYSENTER_ESP_MSR 0x00000175 +#define SYSENTER_EIP_MSR 0x00000176 +#define EFER_MSR 0xc0000080 +#define IA32_STAR_MSR 0xc0000081 +#define IA32_LSTAR_MSR 0xc0000082 +#define IA32_CSTAR_MSR 0xc0000083 +#define IA32_FMASK_MSR 0xc0000084 +#define FS_BASE_MSR 0xc0000100 +#define GS_BASE_MSR 0xc0000101 +#define IA32_KERN_GS_BASE_MSR 0xc0000102 + + struct guest_info; struct v3_vm_info; @@ -45,10 +58,10 @@ struct v3_msr { typedef struct v3_msr v3_msr_t; struct v3_msr_hook { - uint_t msr; + uint32_t msr; - int (*read)(struct guest_info * core, uint_t msr, struct v3_msr * dst, void * priv_data); - int (*write)(struct guest_info * core, uint_t msr, struct v3_msr src, void * priv_data); + int (*read)(struct guest_info * core, uint32_t msr, struct v3_msr * dst, void * priv_data); + int (*write)(struct guest_info * core, uint32_t msr, struct v3_msr src, void * priv_data); void * priv_data; @@ -63,7 +76,7 @@ struct v3_msr_map { uint_t num_hooks; struct list_head hook_list; - int (*update_map)(struct v3_vm_info * vm, uint_t msr, int hook_read, int hook_write); + int (*update_map)(struct v3_vm_info * vm, uint32_t msr, int hook_read, int hook_write); void * arch_data; }; @@ -72,15 +85,15 @@ struct v3_msr_map { void v3_init_msr_map(struct v3_vm_info * vm); int v3_deinit_msr_map(struct v3_vm_info * vm); -int v3_unhook_msr(struct v3_vm_info * vm, uint_t msr); +int v3_unhook_msr(struct v3_vm_info * vm, uint32_t msr); -int v3_hook_msr(struct v3_vm_info * vm, uint_t msr, - int (*read)(struct guest_info * core, uint_t msr, struct v3_msr * dst, void * priv_data), - int (*write)(struct guest_info * core, uint_t msr, struct v3_msr src, void * priv_data), +int v3_hook_msr(struct v3_vm_info * vm, uint32_t msr, + int (*read)(struct guest_info * core, uint32_t msr, struct v3_msr * dst, void * priv_data), + int (*write)(struct guest_info * core, uint32_t msr, struct v3_msr src, void * priv_data), void * priv_data); -struct v3_msr_hook * v3_get_msr_hook(struct v3_vm_info * vm, uint_t msr); +struct v3_msr_hook * v3_get_msr_hook(struct v3_vm_info * vm, uint32_t msr); void v3_refresh_msr_map(struct v3_vm_info * vm);