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;
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;
};
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);
}
int v3_handle_msr_write(struct guest_info * info) {
- uint_t msr_num = info->vm_regs.rcx;
+ uint32_t msr_num = info->vm_regs.rcx;
struct v3_msr msr_val;
struct v3_msr_hook * hook = NULL;
int v3_handle_msr_read(struct guest_info * info) {
- uint_t msr_num = info->vm_regs.rcx;
+ uint32_t msr_num = info->vm_regs.rcx;
struct v3_msr msr_val;
struct v3_msr_hook * hook = NULL;
return 0;
}
-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_map * msr_map = &(vm->msr_map);
}
-int v3_unhook_msr(struct v3_vm_info * vm, uint_t msr) {
+int v3_unhook_msr(struct v3_vm_info * vm, uint32_t msr) {
struct v3_msr_hook * hook = v3_get_msr_hook(vm, msr);
if (hook == NULL) {
-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) {
struct v3_msr_map * msr_map = &(vm->msr_map);
struct v3_msr_hook * hook = NULL;