- Timestamp:
- Sep 20, 2013 3:27:39 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR3/HM.cpp
r48601 r48606 773 773 pVCpu->hm.s.paStatExitReason = NULL; 774 774 775 rc = MMHyperAlloc(pVM, MAX_EXITREASON_STAT *sizeof(*pVCpu->hm.s.paStatExitReason), 0, MM_TAG_HM,775 rc = MMHyperAlloc(pVM, MAX_EXITREASON_STAT * sizeof(*pVCpu->hm.s.paStatExitReason), 0 /* uAlignment */, MM_TAG_HM, 776 776 (void **)&pVCpu->hm.s.paStatExitReason); 777 777 AssertRC(rc); … … 1242 1242 * Call ring-0 to set up the VM. 1243 1243 */ 1244 rc = SUPR3CallVMMR0Ex(pVM->pVMR0, 0 /* idCpu*/, VMMR0_DO_HM_SETUP_VM, 0, NULL);1244 rc = SUPR3CallVMMR0Ex(pVM->pVMR0, 0 /* idCpu */, VMMR0_DO_HM_SETUP_VM, 0 /* u64Arg */, NULL /* pReqHdr */); 1245 1245 if (rc != VINF_SUCCESS) 1246 1246 { … … 2017 2017 * and make sure there is still room for our patch record. 2018 2018 */ 2019 PCPUMCTX 2019 PCPUMCTX pCtx = CPUMQueryGuestCtxPtr(pVCpu); 2020 2020 PHMTPRPATCH pPatch = (PHMTPRPATCH)RTAvloU32Get(&pVM->hm.s.PatchTree, (AVLOU32KEY)pCtx->eip); 2021 2021 if (pPatch) … … 2058 2058 { 2059 2059 /* 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2060 * TPR write: 2061 * 2062 * push ECX [51] 2063 * push EDX [52] 2064 * push EAX [50] 2065 * xor EDX,EDX [31 D2] 2066 * mov EAX,EAX [89 C0] 2067 * or 2068 * mov EAX,0000000CCh [B8 CC 00 00 00] 2069 * mov ECX,0C0000082h [B9 82 00 00 C0] 2070 * wrmsr [0F 30] 2071 * pop EAX [58] 2072 * pop EDX [5A] 2073 * pop ECX [59] 2074 * jmp return_address [E9 return_address] 2075 * 2076 */ 2077 2077 bool fUsesEax = (pDis->Param2.fUse == DISUSE_REG_GEN32 && pDis->Param2.Base.idxGenReg == DISGREG_EAX); 2078 2078 … … 2112 2112 { 2113 2113 /* 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2114 * TPR read: 2115 * 2116 * push ECX [51] 2117 * push EDX [52] 2118 * push EAX [50] 2119 * mov ECX,0C0000082h [B9 82 00 00 C0] 2120 * rdmsr [0F 32] 2121 * mov EAX,EAX [89 C0] 2122 * pop EAX [58] 2123 * pop EDX [5A] 2124 * pop ECX [59] 2125 * jmp return_address [E9 return_address] 2126 * 2127 */ 2128 2128 Assert(pDis->Param1.fUse == DISUSE_REG_GEN32); 2129 2129
Note:
See TracChangeset
for help on using the changeset viewer.