#include <palacios/vmm_ctrl_regs.h>
#include <palacios/vmm_direct_paging.h>
-#ifndef DEBUG_CTRL_REGS
+#ifndef CONFIG_DEBUG_CTRL_REGS
#undef PrintDebug
#define PrintDebug(fmt, args...)
#endif
if (paging_transition) {
if (v3_get_vm_mem_mode(info) == VIRTUAL_MEM) {
- struct efer_64 * guest_efer = (struct efer_64 *)&(info->guest_efer);
+ struct efer_64 * guest_efer = (struct efer_64 *)&(info->shdw_pg_state.guest_efer);
struct efer_64 * shadow_efer = (struct efer_64 *)&(info->ctrl_regs.efer);
// Check long mode LME to set LME
PrintError("Failed to activate 32 bit shadow page table\n");
return -1;
}
- }
+ }
PrintDebug("New Shadow CR3=%p; New Guest CR3=%p\n",
(void *)(addr_t)(info->ctrl_regs.cr3),
int v3_handle_efer_read(uint_t msr, struct v3_msr * dst, void * priv_data) {
struct guest_info * info = (struct guest_info *)(priv_data);
- PrintDebug("EFER Read HI=%x LO=%x\n", info->guest_efer.hi, info->guest_efer.lo);
+ PrintDebug("EFER Read HI=%x LO=%x\n", info->shdw_pg_state.guest_efer.hi, info->shdw_pg_state.guest_efer.lo);
- dst->value = info->guest_efer.value;
+ dst->value = info->shdw_pg_state.guest_efer.value;
info->rip += 2; // WRMSR/RDMSR are two byte operands
return 0;
struct guest_info * info = (struct guest_info *)(priv_data);
//struct efer_64 * new_efer = (struct efer_64 *)&(src.value);
struct efer_64 * shadow_efer = (struct efer_64 *)&(info->ctrl_regs.efer);
- struct v3_msr * guest_efer = &(info->guest_efer);
+ struct v3_msr * guest_efer = &(info->shdw_pg_state.guest_efer);
PrintDebug("EFER Write\n");
PrintDebug("EFER Write Values: HI=%x LO=%x\n", src.hi, src.lo);