X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Finclude%2Fpalacios%2Fvmm_msr.h;h=ef66a602deb951c7dcd70208359f80cabb93e087;hb=7ddf7f8c9b007c3405146e001d9f3689723f7d4d;hp=ed58d9bed6387f4f64b710b72d6ce6a7f9a28d88;hpb=f1d070a7d98fea4d37069555d653e37524f50ac8;p=palacios.releases.git diff --git a/palacios/include/palacios/vmm_msr.h b/palacios/include/palacios/vmm_msr.h index ed58d9b..ef66a60 100644 --- a/palacios/include/palacios/vmm_msr.h +++ b/palacios/include/palacios/vmm_msr.h @@ -28,28 +28,31 @@ struct guest_info; + struct v3_msr { - union { - ullong_t value; + union { + ullong_t value; - struct { - uint_t lo; - uint_t hi; + struct { + uint_t lo; + uint_t hi; + } __attribute__((packed)); } __attribute__((packed)); - } __attribute__((packed)); } __attribute__((packed)); +typedef struct v3_msr v3_msr_t; + struct v3_msr_hook { - uint_t msr; + uint_t msr; - int (*read)(uint_t msr, struct v3_msr * dst, void * priv_data); - int (*write)(uint_t msr, struct v3_msr src, void * priv_data); + int (*read)(uint_t msr, struct v3_msr * dst, void * priv_data); + int (*write)(uint_t msr, struct v3_msr src, void * priv_data); - void * priv_data; + void * priv_data; - struct list_head link; + struct list_head link; }; @@ -57,8 +60,12 @@ struct v3_msr_hook { struct v3_msr_hook; struct v3_msr_map { - uint_t num_hooks; - struct list_head hook_list; + 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; + };