X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Finclude%2Fpalacios%2Fvmm_msr.h;h=717d2ba7a9387fe01d8c934b5aed0b9053ca07c5;hb=6541ca672276d841db22cc18a003303cf517ea89;hp=00e1425a2fcffdd41c7088e2c95770707f9aab51;hpb=9b4bfeefac09294a6f0ae12dbadf102eb547f5ec;p=palacios.git diff --git a/palacios/include/palacios/vmm_msr.h b/palacios/include/palacios/vmm_msr.h index 00e1425..717d2ba 100644 --- a/palacios/include/palacios/vmm_msr.h +++ b/palacios/include/palacios/vmm_msr.h @@ -28,20 +28,20 @@ struct guest_info; + struct v3_msr { union { - ullong_t value; + uint64_t value; struct { - uint_t lo; - uint_t hi; + uint32_t lo; + uint32_t hi; } __attribute__((packed)); } __attribute__((packed)); } __attribute__((packed)); - typedef struct v3_msr v3_msr_t; struct v3_msr_hook { @@ -62,6 +62,10 @@ struct v3_msr_hook; struct v3_msr_map { uint_t num_hooks; struct list_head hook_list; + + int (*update_map)(struct guest_info * info, uint_t msr, int hook_read, int hook_write); + void * arch_data; + }; @@ -77,8 +81,14 @@ int v3_hook_msr(struct guest_info * info, uint_t msr, struct v3_msr_hook * v3_get_msr_hook(struct guest_info * info, uint_t msr); +void v3_refresh_msr_map(struct guest_info * info); + void v3_print_msr_map(struct guest_info * info); +int v3_handle_msr_write(struct guest_info * info); + +int v3_handle_msr_read(struct guest_info * info); + #endif // ! __V3VEE__