X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Fsrc%2Fgeekos%2Fvmcb.c;fp=palacios%2Fsrc%2Fgeekos%2Fvmcb.c;h=0000000000000000000000000000000000000000;hb=ed42f510da670d47e780813b35a78bea90a8ccde;hp=88538a3684ec048612455dcf7b50210058b87933;hpb=c7e3f043b6458083162e23e1a8adb7703fd06559;p=palacios-OLD.git diff --git a/palacios/src/geekos/vmcb.c b/palacios/src/geekos/vmcb.c deleted file mode 100644 index 88538a3..0000000 --- a/palacios/src/geekos/vmcb.c +++ /dev/null @@ -1,325 +0,0 @@ -#include -#include -#include - - -void PrintDebugVMCB(vmcb_t * vmcb) { - reg_ex_t tmp_reg; - - vmcb_ctrl_t * ctrl_area = GET_VMCB_CTRL_AREA(vmcb); - vmcb_saved_state_t * guest_area = GET_VMCB_SAVE_STATE_AREA(vmcb); - - PrintDebug("VMCB (0x%.8x)\n", vmcb); - - PrintDebug("--Control Area--\n"); - PrintDebug("CR Reads: %x\n", ctrl_area->cr_reads.bitmap); - PrintDebug("CR Writes: %x\n", ctrl_area->cr_writes.bitmap); - PrintDebug("DR Reads: %x\n", ctrl_area->dr_reads.bitmap); - PrintDebug("DR Writes: %x\n", ctrl_area->dr_writes.bitmap); - - PrintDebug("Exception Bitmap: %x (at 0x%.8x)\n", ctrl_area->exceptions.bitmap, &(ctrl_area->exceptions)); - PrintDebug("\tDivide-by-Zero: %d\n", ctrl_area->exceptions.ex_names.de); - PrintDebug("\tDebug: %d\n", ctrl_area->exceptions.ex_names.db); - PrintDebug("\tNon-maskable interrupts: %d\n", ctrl_area->exceptions.ex_names.nmi); - PrintDebug("\tBreakpoint: %d\n", ctrl_area->exceptions.ex_names.bp); - PrintDebug("\tOverflow: %d\n", ctrl_area->exceptions.ex_names.of); - PrintDebug("\tBound-Range: %d\n", ctrl_area->exceptions.ex_names.br); - PrintDebug("\tInvalid Opcode: %d\n", ctrl_area->exceptions.ex_names.ud); - PrintDebug("\tDevice not available: %d\n", ctrl_area->exceptions.ex_names.nm); - PrintDebug("\tDouble Fault: %d\n", ctrl_area->exceptions.ex_names.df); - PrintDebug("\tInvalid TSS: %d\n", ctrl_area->exceptions.ex_names.ts); - PrintDebug("\tSegment not present: %d\n", ctrl_area->exceptions.ex_names.np); - PrintDebug("\tStack: %d\n", ctrl_area->exceptions.ex_names.ss); - PrintDebug("\tGPF: %d\n", ctrl_area->exceptions.ex_names.gp); - PrintDebug("\tPage Fault: %d\n", ctrl_area->exceptions.ex_names.pf); - PrintDebug("\tFloating Point: %d\n", ctrl_area->exceptions.ex_names.mf); - PrintDebug("\tAlignment Check: %d\n", ctrl_area->exceptions.ex_names.ac); - PrintDebug("\tMachine Check: %d\n", ctrl_area->exceptions.ex_names.mc); - PrintDebug("\tSIMD floating point: %d\n", ctrl_area->exceptions.ex_names.xf); - PrintDebug("\tSecurity: %d\n", ctrl_area->exceptions.ex_names.sx); - - PrintDebug("Instructions bitmap: %.8x (at 0x%.8x)\n", ctrl_area->instrs.bitmap, &(ctrl_area->instrs)); - PrintDebug("\tINTR: %d\n", ctrl_area->instrs.instrs.INTR); - PrintDebug("\tNMI: %d\n", ctrl_area->instrs.instrs.NMI); - PrintDebug("\tSMI: %d\n", ctrl_area->instrs.instrs.SMI); - PrintDebug("\tINIT: %d\n", ctrl_area->instrs.instrs.INIT); - PrintDebug("\tVINTR: %d\n", ctrl_area->instrs.instrs.VINTR); - PrintDebug("\tCR0: %d\n", ctrl_area->instrs.instrs.CR0); - PrintDebug("\tRD_IDTR: %d\n", ctrl_area->instrs.instrs.RD_IDTR); - PrintDebug("\tRD_GDTR: %d\n", ctrl_area->instrs.instrs.RD_GDTR); - PrintDebug("\tRD_LDTR: %d\n", ctrl_area->instrs.instrs.RD_LDTR); - PrintDebug("\tRD_TR: %d\n", ctrl_area->instrs.instrs.RD_TR); - PrintDebug("\tWR_IDTR: %d\n", ctrl_area->instrs.instrs.WR_IDTR); - PrintDebug("\tWR_GDTR: %d\n", ctrl_area->instrs.instrs.WR_GDTR); - PrintDebug("\tWR_LDTR: %d\n", ctrl_area->instrs.instrs.WR_LDTR); - PrintDebug("\tWR_TR: %d\n", ctrl_area->instrs.instrs.WR_TR); - PrintDebug("\tRDTSC: %d\n", ctrl_area->instrs.instrs.RDTSC); - PrintDebug("\tRDPMC: %d\n", ctrl_area->instrs.instrs.RDPMC); - PrintDebug("\tPUSHF: %d\n", ctrl_area->instrs.instrs.PUSHF); - PrintDebug("\tPOPF: %d\n", ctrl_area->instrs.instrs.POPF); - PrintDebug("\tCPUID: %d\n", ctrl_area->instrs.instrs.CPUID); - PrintDebug("\tRSM: %d\n", ctrl_area->instrs.instrs.RSM); - PrintDebug("\tIRET: %d\n", ctrl_area->instrs.instrs.IRET); - PrintDebug("\tINTn: %d\n", ctrl_area->instrs.instrs.INTn); - PrintDebug("\tINVD: %d\n", ctrl_area->instrs.instrs.INVD); - PrintDebug("\tPAUSE: %d\n", ctrl_area->instrs.instrs.PAUSE); - PrintDebug("\tHLT: %d\n", ctrl_area->instrs.instrs.HLT); - PrintDebug("\tINVLPG: %d\n", ctrl_area->instrs.instrs.INVLPG); - PrintDebug("\tINVLPGA: %d\n", ctrl_area->instrs.instrs.INVLPGA); - PrintDebug("\tIOIO_PROT: %d\n", ctrl_area->instrs.instrs.IOIO_PROT); - PrintDebug("\tMSR_PROT: %d\n", ctrl_area->instrs.instrs.MSR_PROT); - PrintDebug("\ttask_switch: %d\n", ctrl_area->instrs.instrs.task_switch); - PrintDebug("\tFERR_FREEZE: %d\n", ctrl_area->instrs.instrs.FERR_FREEZE); - PrintDebug("\tshutdown_evts: %d\n", ctrl_area->instrs.instrs.shutdown_evts); - - PrintDebug("SVM Instruction Bitmap: %.8x (at 0x%.8x)\n", ctrl_area->svm_instrs.bitmap, &(ctrl_area->svm_instrs)); - PrintDebug("\tVMRUN: %d\n", ctrl_area->svm_instrs.instrs.VMRUN); - PrintDebug("\tVMMCALL: %d\n", ctrl_area->svm_instrs.instrs.VMMCALL); - PrintDebug("\tVMLOAD: %d\n", ctrl_area->svm_instrs.instrs.VMLOAD); - PrintDebug("\tVMSAVE: %d\n", ctrl_area->svm_instrs.instrs.VMSAVE); - PrintDebug("\tSTGI: %d\n", ctrl_area->svm_instrs.instrs.STGI); - PrintDebug("\tCLGI: %d\n", ctrl_area->svm_instrs.instrs.CLGI); - PrintDebug("\tSKINIT: %d\n", ctrl_area->svm_instrs.instrs.SKINIT); - PrintDebug("\tRDTSCP: %d\n", ctrl_area->svm_instrs.instrs.RDTSCP); - PrintDebug("\tICEBP: %d\n", ctrl_area->svm_instrs.instrs.ICEBP); - PrintDebug("\tWBINVD: %d\n", ctrl_area->svm_instrs.instrs.WBINVD); - PrintDebug("\tMONITOR: %d\n", ctrl_area->svm_instrs.instrs.MONITOR); - PrintDebug("\tMWAIT_always: %d\n", ctrl_area->svm_instrs.instrs.MWAIT_always); - PrintDebug("\tMWAIT_if_armed: %d\n", ctrl_area->svm_instrs.instrs.MWAIT_if_armed); - - - - tmp_reg.r_reg = ctrl_area->IOPM_BASE_PA; - PrintDebug("IOPM_BASE_PA: lo: 0x%.8x, hi: 0x%.8x\n", tmp_reg.e_reg.low, tmp_reg.e_reg.high); - tmp_reg.r_reg = ctrl_area->MSRPM_BASE_PA; - PrintDebug("MSRPM_BASE_PA: lo: 0x%.8x, hi: 0x%.8x\n", tmp_reg.e_reg.low, tmp_reg.e_reg.high); - tmp_reg.r_reg = ctrl_area->TSC_OFFSET; - PrintDebug("TSC_OFFSET: lo: 0x%.8x, hi: 0x%.8x\n", tmp_reg.e_reg.low, tmp_reg.e_reg.high); - - PrintDebug("guest_ASID: %d\n", ctrl_area->guest_ASID); - PrintDebug("TLB_CONTROL: %d\n", ctrl_area->TLB_CONTROL); - - - PrintDebug("Guest Control Bitmap: %x (at 0x%.8x)\n", ctrl_area->guest_ctrl.bitmap, &(ctrl_area->guest_ctrl)); - PrintDebug("\tV_TPR: %d\n", ctrl_area->guest_ctrl.ctrls.V_TPR); - PrintDebug("\tV_IRQ: %d\n", ctrl_area->guest_ctrl.ctrls.V_IRQ); - PrintDebug("\tV_INTR_PRIO: %d\n", ctrl_area->guest_ctrl.ctrls.V_INTR_PRIO); - PrintDebug("\tV_IGN_TPR: %d\n", ctrl_area->guest_ctrl.ctrls.V_IGN_TPR); - PrintDebug("\tV_INTR_MASKING: %d\n", ctrl_area->guest_ctrl.ctrls.V_INTR_MASKING); - PrintDebug("\tV_INTR_VECTOR: %d\n", ctrl_area->guest_ctrl.ctrls.V_INTR_VECTOR); - - PrintDebug("Interrupt_shadow: %d\n", ctrl_area->interrupt_shadow); - - - tmp_reg.r_reg = ctrl_area->exit_code; - PrintDebug("exit_code: hi: 0x%.8x, lo: 0x%.8x\n", tmp_reg.e_reg.high, tmp_reg.e_reg.low); - tmp_reg.r_reg = ctrl_area->exit_info1; - PrintDebug("exit_info1: hi: 0x%.8x, lo: 0x%.8x\n", tmp_reg.e_reg.high, tmp_reg.e_reg.low); - tmp_reg.r_reg = ctrl_area->exit_info2; - PrintDebug("exit_info2: hi: 0x%.8x, lo: 0x%.8x\n", tmp_reg.e_reg.high, tmp_reg.e_reg.low); - - tmp_reg.r_reg = ctrl_area->exit_int_info; - PrintDebug("exit_int_info: hi: 0x%.8x, lo: 0x%.8x\n", tmp_reg.e_reg.high, tmp_reg.e_reg.low); - - - tmp_reg.r_reg = ctrl_area->NP_ENABLE; - PrintDebug("NP_ENABLE: hi: 0x%.8x, lo: 0x%.8x\n", tmp_reg.e_reg.high, tmp_reg.e_reg.low); - - tmp_reg.r_reg = ctrl_area->EVENTINJ; - PrintDebug("EVENTINJ: hi: 0x%.8x, lo: 0x%.8x\n", tmp_reg.e_reg.high, tmp_reg.e_reg.low); - - - tmp_reg.r_reg = ctrl_area->N_CR3; - PrintDebug("N_CR3: hi: 0x%.8x, lo: 0x%.8x\n", tmp_reg.e_reg.high, tmp_reg.e_reg.low); - - PrintDebug("LBR_VIRTUALIZATION_ENABLE: %d\n", ctrl_area->LBR_VIRTUALIZATION_ENABLE); - - - PrintDebug("\n--Guest Saved State--\n"); - - PrintDebug("es Selector (at 0x%.8x): \n", &(guest_area->es)); - PrintDebug("\tSelector: %d\n", guest_area->es.selector); - PrintDebug("\t(type=%x), (S=%d), (dpl=%d), (P=%d), (avl=%d), (L=%d), (db=%d), (G=%d)\n", - guest_area->es.attrib.fields.type, guest_area->es.attrib.fields.S, - guest_area->es.attrib.fields.dpl, guest_area->es.attrib.fields.P, - guest_area->es.attrib.fields.avl, guest_area->es.attrib.fields.L, - guest_area->es.attrib.fields.db, guest_area->es.attrib.fields.G); - PrintDebug("\tlimit: %lu\n", guest_area->es.limit); - tmp_reg.r_reg = guest_area->es.base; - PrintDebug("\tBase: hi: 0x%.8x, lo: 0x%.8x\n", tmp_reg.e_reg.high, tmp_reg.e_reg.low); - - - PrintDebug("cs Selector (at 0x%.8x): \n", &(guest_area->cs)); - PrintDebug("\tSelector: %d\n", guest_area->cs.selector); - PrintDebug("\t(type=%x), (S=%d), (dpl=%d), (P=%d), (avl=%d), (L=%d), (db=%d), (G=%d)\n", - guest_area->cs.attrib.fields.type, guest_area->cs.attrib.fields.S, - guest_area->cs.attrib.fields.dpl, guest_area->cs.attrib.fields.P, - guest_area->cs.attrib.fields.avl, guest_area->cs.attrib.fields.L, - guest_area->cs.attrib.fields.db, guest_area->cs.attrib.fields.G); - PrintDebug("\tlimit: %lu\n", guest_area->cs.limit); - tmp_reg.r_reg = guest_area->cs.base; - PrintDebug("\tBase: hi: 0x%.8x, lo: 0x%.8x\n", tmp_reg.e_reg.high, tmp_reg.e_reg.low); - - - PrintDebug("ss Selector (at 0x%.8x): \n", &(guest_area->ss)); - PrintDebug("\tSelector: %d\n", guest_area->ss.selector); - PrintDebug("\t(type=%x), (S=%d), (dpl=%d), (P=%d), (avl=%d), (L=%d), (db=%d), (G=%d)\n", - guest_area->ss.attrib.fields.type, guest_area->ss.attrib.fields.S, - guest_area->ss.attrib.fields.dpl, guest_area->ss.attrib.fields.P, - guest_area->ss.attrib.fields.avl, guest_area->ss.attrib.fields.L, - guest_area->ss.attrib.fields.db, guest_area->ss.attrib.fields.G); - PrintDebug("\tlimit: %lu\n", guest_area->ss.limit); - tmp_reg.r_reg = guest_area->ss.base; - PrintDebug("\tBase: hi: 0x%.8x, lo: 0x%.8x\n", tmp_reg.e_reg.high, tmp_reg.e_reg.low); - - - PrintDebug("ds Selector (at 0x%.8x): \n", &(guest_area->ds)); - PrintDebug("\tSelector: %d\n", guest_area->ds.selector); - PrintDebug("\t(type=%x), (S=%d), (dpl=%d), (P=%d), (avl=%d), (L=%d), (db=%d), (G=%d)\n", - guest_area->ds.attrib.fields.type, guest_area->ds.attrib.fields.S, - guest_area->ds.attrib.fields.dpl, guest_area->ds.attrib.fields.P, - guest_area->ds.attrib.fields.avl, guest_area->ds.attrib.fields.L, - guest_area->ds.attrib.fields.db, guest_area->ds.attrib.fields.G); - PrintDebug("\tlimit: %lu\n", guest_area->ds.limit); - tmp_reg.r_reg = guest_area->ds.base; - PrintDebug("\tBase: hi: 0x%.8x, lo: 0x%.8x\n", tmp_reg.e_reg.high, tmp_reg.e_reg.low); - - - PrintDebug("fs Selector (at 0x%.8x): \n", &(guest_area->fs)); - PrintDebug("\tSelector: %d\n", guest_area->fs.selector); - PrintDebug("\t(type=%x), (S=%d), (dpl=%d), (P=%d), (avl=%d), (L=%d), (db=%d), (G=%d)\n", - guest_area->fs.attrib.fields.type, guest_area->fs.attrib.fields.S, - guest_area->fs.attrib.fields.dpl, guest_area->fs.attrib.fields.P, - guest_area->fs.attrib.fields.avl, guest_area->fs.attrib.fields.L, - guest_area->fs.attrib.fields.db, guest_area->fs.attrib.fields.G); - PrintDebug("\tlimit: %lu\n", guest_area->fs.limit); - tmp_reg.r_reg = guest_area->fs.base; - PrintDebug("\tBase: hi: 0x%.8x, lo: 0x%.8x\n", tmp_reg.e_reg.high, tmp_reg.e_reg.low); - - - PrintDebug("gs Selector (at 0x%.8x): \n", &(guest_area->gs)); - PrintDebug("\tSelector: %d\n", guest_area->gs.selector); - PrintDebug("\t(type=%x), (S=%d), (dpl=%d), (P=%d), (avl=%d), (L=%d), (db=%d), (G=%d)\n", - guest_area->gs.attrib.fields.type, guest_area->gs.attrib.fields.S, - guest_area->gs.attrib.fields.dpl, guest_area->gs.attrib.fields.P, - guest_area->gs.attrib.fields.avl, guest_area->gs.attrib.fields.L, - guest_area->gs.attrib.fields.db, guest_area->gs.attrib.fields.G); - PrintDebug("\tlimit: %lu\n", guest_area->gs.limit); - tmp_reg.r_reg = guest_area->gs.base; - PrintDebug("\tBase: hi: 0x%.8x, lo: 0x%.8x\n", tmp_reg.e_reg.high, tmp_reg.e_reg.low); - - - PrintDebug("gdtr Selector (at 0x%.8x): \n", &(guest_area->gdtr)); - PrintDebug("\tSelector: %d\n", guest_area->gdtr.selector); - PrintDebug("\t(type=%x), (S=%d), (dpl=%d), (P=%d), (avl=%d), (L=%d), (db=%d), (G=%d)\n", - guest_area->gdtr.attrib.fields.type, guest_area->gdtr.attrib.fields.S, - guest_area->gdtr.attrib.fields.dpl, guest_area->gdtr.attrib.fields.P, - guest_area->gdtr.attrib.fields.avl, guest_area->gdtr.attrib.fields.L, - guest_area->gdtr.attrib.fields.db, guest_area->gdtr.attrib.fields.G); - PrintDebug("\tlimit: %lu\n", guest_area->gdtr.limit); - tmp_reg.r_reg = guest_area->gdtr.base; - PrintDebug("\tBase: hi: 0x%.8x, lo: 0x%.8x\n", tmp_reg.e_reg.high, tmp_reg.e_reg.low); - - - PrintDebug("ldtr Selector (at 0x%.8x): \n", &(guest_area->ldtr)); - PrintDebug("\tSelector: %d\n", guest_area->ldtr.selector); - PrintDebug("\t(type=%x), (S=%d), (dpl=%d), (P=%d), (avl=%d), (L=%d), (db=%d), (G=%d)\n", - guest_area->ldtr.attrib.fields.type, guest_area->ldtr.attrib.fields.S, - guest_area->ldtr.attrib.fields.dpl, guest_area->ldtr.attrib.fields.P, - guest_area->ldtr.attrib.fields.avl, guest_area->ldtr.attrib.fields.L, - guest_area->ldtr.attrib.fields.db, guest_area->ldtr.attrib.fields.G); - PrintDebug("\tlimit: %lu\n", guest_area->ldtr.limit); - tmp_reg.r_reg = guest_area->ldtr.base; - PrintDebug("\tBase: hi: 0x%.8x, lo: 0x%.8x\n", tmp_reg.e_reg.high, tmp_reg.e_reg.low); - - - PrintDebug("idtr Selector (at 0x%.8x): \n", &(guest_area->idtr)); - PrintDebug("\tSelector: %d\n", guest_area->idtr.selector); - PrintDebug("\t(type=%x), (S=%d), (dpl=%d), (P=%d), (avl=%d), (L=%d), (db=%d), (G=%d)\n", - guest_area->idtr.attrib.fields.type, guest_area->idtr.attrib.fields.S, - guest_area->idtr.attrib.fields.dpl, guest_area->idtr.attrib.fields.P, - guest_area->idtr.attrib.fields.avl, guest_area->idtr.attrib.fields.L, - guest_area->idtr.attrib.fields.db, guest_area->idtr.attrib.fields.G); - PrintDebug("\tlimit: %lu\n", guest_area->idtr.limit); - tmp_reg.r_reg = guest_area->idtr.base; - PrintDebug("\tBase: hi: 0x%.8x, lo: 0x%.8x\n", tmp_reg.e_reg.high, tmp_reg.e_reg.low); - - - PrintDebug("tr Selector (at 0x%.8x): \n", &(guest_area->tr)); - PrintDebug("\tSelector: %d\n", guest_area->tr.selector); - PrintDebug("\t(type=%x), (S=%d), (dpl=%d), (P=%d), (avl=%d), (L=%d), (db=%d), (G=%d)\n", - guest_area->tr.attrib.fields.type, guest_area->tr.attrib.fields.S, - guest_area->tr.attrib.fields.dpl, guest_area->tr.attrib.fields.P, - guest_area->tr.attrib.fields.avl, guest_area->tr.attrib.fields.L, - guest_area->tr.attrib.fields.db, guest_area->tr.attrib.fields.G); - PrintDebug("\tlimit: %lu\n", guest_area->tr.limit); - tmp_reg.r_reg = guest_area->tr.base; - PrintDebug("\tBase: hi: 0x%.8x, lo: 0x%.8x\n", tmp_reg.e_reg.high, tmp_reg.e_reg.low); - - - PrintDebug("cpl: %d\n", guest_area->cpl); - - - tmp_reg.r_reg = guest_area->efer; - PrintDebug("EFER: hi: 0x%.8x, lo: 0x%.8x\n", tmp_reg.e_reg.high, tmp_reg.e_reg.low); - - tmp_reg.r_reg = guest_area->cr4; - PrintDebug("CR4: hi: 0x%.8x, lo: 0x%.8x\n", tmp_reg.e_reg.high, tmp_reg.e_reg.low); - tmp_reg.r_reg = guest_area->cr3; - PrintDebug("CR3: hi: 0x%.8x, lo: 0x%.8x\n", tmp_reg.e_reg.high, tmp_reg.e_reg.low); - tmp_reg.r_reg = guest_area->cr0; - PrintDebug("CR0: hi: 0x%.8x, lo: 0x%.8x\n", tmp_reg.e_reg.high, tmp_reg.e_reg.low); - tmp_reg.r_reg = guest_area->dr7; - PrintDebug("DR7: hi: 0x%.8x, lo: 0x%.8x\n", tmp_reg.e_reg.high, tmp_reg.e_reg.low); - tmp_reg.r_reg = guest_area->dr6; - PrintDebug("DR6: hi: 0x%.8x, lo: 0x%.8x\n", tmp_reg.e_reg.high, tmp_reg.e_reg.low); - tmp_reg.r_reg = guest_area->rflags; - PrintDebug("RFLAGS: hi: 0x%.8x, lo: 0x%.8x\n", tmp_reg.e_reg.high, tmp_reg.e_reg.low); - tmp_reg.r_reg = guest_area->rip; - PrintDebug("RIP: hi: 0x%.8x, lo: 0x%.8x\n", tmp_reg.e_reg.high, tmp_reg.e_reg.low); - - - tmp_reg.r_reg = guest_area->rsp; - PrintDebug("RSP: hi: 0x%.8x, lo: 0x%.8x\n", tmp_reg.e_reg.high, tmp_reg.e_reg.low); - - - tmp_reg.r_reg = guest_area->rax; - PrintDebug("RAX: hi: 0x%.8x, lo: 0x%.8x\n", tmp_reg.e_reg.high, tmp_reg.e_reg.low); - tmp_reg.r_reg = guest_area->star; - PrintDebug("STAR: hi: 0x%.8x, lo: 0x%.8x\n", tmp_reg.e_reg.high, tmp_reg.e_reg.low); - tmp_reg.r_reg = guest_area->lstar; - PrintDebug("LSTAR: hi: 0x%.8x, lo: 0x%.8x\n", tmp_reg.e_reg.high, tmp_reg.e_reg.low); - tmp_reg.r_reg = guest_area->cstar; - PrintDebug("CSTAR: hi: 0x%.8x, lo: 0x%.8x\n", tmp_reg.e_reg.high, tmp_reg.e_reg.low); - tmp_reg.r_reg = guest_area->sfmask; - PrintDebug("SFMASK: hi: 0x%.8x, lo: 0x%.8x\n", tmp_reg.e_reg.high, tmp_reg.e_reg.low); - tmp_reg.r_reg = guest_area->KernelGsBase; - PrintDebug("KernelGsBase: hi: 0x%.8x, lo: 0x%.8x\n", tmp_reg.e_reg.high, tmp_reg.e_reg.low); - tmp_reg.r_reg = guest_area->sysenter_cs; - PrintDebug("sysenter_cs: hi: 0x%.8x, lo: 0x%.8x\n", tmp_reg.e_reg.high, tmp_reg.e_reg.low); - tmp_reg.r_reg = guest_area->sysenter_esp; - PrintDebug("sysenter_esp: hi: 0x%.8x, lo: 0x%.8x\n", tmp_reg.e_reg.high, tmp_reg.e_reg.low); - tmp_reg.r_reg = guest_area->sysenter_eip; - PrintDebug("sysenter_eip: hi: 0x%.8x, lo: 0x%.8x\n", tmp_reg.e_reg.high, tmp_reg.e_reg.low); - tmp_reg.r_reg = guest_area->cr2; - PrintDebug("CR2: hi: 0x%.8x, lo: 0x%.8x\n", tmp_reg.e_reg.high, tmp_reg.e_reg.low); - - tmp_reg.r_reg = guest_area->g_pat; - PrintDebug("g_pat: hi: 0x%.8x, lo: 0x%.8x\n", tmp_reg.e_reg.high, tmp_reg.e_reg.low); - tmp_reg.r_reg = guest_area->dbgctl; - PrintDebug("dbgctl: hi: 0x%.8x, lo: 0x%.8x\n", tmp_reg.e_reg.high, tmp_reg.e_reg.low); - tmp_reg.r_reg = guest_area->br_from; - PrintDebug("br_from: hi: 0x%.8x, lo: 0x%.8x\n", tmp_reg.e_reg.high, tmp_reg.e_reg.low); - tmp_reg.r_reg = guest_area->br_to; - PrintDebug("br_to: hi: 0x%.8x, lo: 0x%.8x\n", tmp_reg.e_reg.high, tmp_reg.e_reg.low); - tmp_reg.r_reg = guest_area->lastexcpfrom; - PrintDebug("lastexcpfrom: hi: 0x%.8x, lo: 0x%.8x\n", tmp_reg.e_reg.high, tmp_reg.e_reg.low); - tmp_reg.r_reg = guest_area->lastexcpto; - PrintDebug("lastexcpto: hi: 0x%.8x, lo: 0x%.8x\n", tmp_reg.e_reg.high, tmp_reg.e_reg.low); - - - - - - -}