/* Same as SVM */
static int update_map(struct v3_vm_info * vm, uint16_t port, int hook_read, int hook_write) {
- uchar_t * bitmap = (uint8_t *)(vm->io_map.arch_data);
+ uint8_t * bitmap = (uint8_t *)(vm->io_map.arch_data);
int major = port / 8;
int minor = port % 8;
}
int v3_init_vmx_io_map(struct v3_vm_info * vm) {
+ void *temp;
+
vm->io_map.update_map = update_map;
-
- vm->io_map.arch_data = V3_VAddr(V3_AllocPages(2));
+
+ temp = V3_AllocPages(2);
+ if (!temp) {
+ PrintError("Cannot allocate io bitmap\n");
+ return -1;
+ }
+
+ vm->io_map.arch_data = V3_VAddr(temp);
memset(vm->io_map.arch_data, 0xff, PAGE_SIZE_4KB * 2);
v3_refresh_io_map(vm);
addr_t guest_va = exit_info->guest_linear_addr;
addr_t host_addr = 0;
int rdi_change = 0;
- ulong_t rep_num = 1;
+ uint32_t rep_num = 1;
struct rflags * flags = (struct rflags *)&(core->ctrl_regs.rflags);
hook = v3_get_io_hook(core->vm_info, io_qual.port);
addr_t guest_va = exit_info->guest_linear_addr;
addr_t host_addr;
int rsi_change;
- ulong_t rep_num = 1;
+ uint32_t rep_num = 1;
struct rflags * flags = (struct rflags *)&(core->ctrl_regs.rflags);
hook = v3_get_io_hook(core->vm_info, io_qual.port);