//info->page_tables = generate_guest_page_tables(&(info->mem_layout), &(info->mem_list));
//PrintDebugPageTables(info->page_tables);
-
PrintDebug("Initializing VMCB (addr=%x)\n", info->vmm_data);
Init_VMCB((vmcb_t*)(info->vmm_data), *info);
guest_state->rip = vm_info.rip;
-
-
-
guest_state->efer |= EFER_MSR_svm_enable;
guest_state->rflags = 0x00000002; // The reserved bit is always 1
ctrl_area->svm_instrs.instrs.VMRUN = 1;
- // guest_state->cr0 = 0x00000001; // PE
ctrl_area->guest_ASID = 1;
guest_state->cr0 = 0x60000010;
*bitmap |= 1 << (port % 8);
}
- // memset((uchar_t*)io_port_bitmap, 0xff, PAGE_SIZE * 2);
- //PrintDebugMemDump((uchar_t*)io_port_bitmap, PAGE_SIZE *2);
-
ctrl_area->instrs.instrs.IOIO_PROT = 1;
}
guest_state->g_pat = 0x7040600070406ULL;
+ vm_info.shdw_pg_state.guest_cr0.e_reg.low = guest_state->cr0;
guest_state->cr0 |= 0x80000000;
} else if (vm_info.page_mode == NESTED_PAGING) {
// Flush the TLB on entries/exits