Changeset 13830
- Timestamp:
- 11/05/08 02:49:18 (2 months ago)
- Files:
-
- trunk/include/VBox/cpum.h (modified) (2 diffs)
- trunk/include/VBox/vm.h (modified) (2 diffs)
- trunk/include/VBox/vm.mac (modified) (1 diff)
- trunk/include/VBox/vmapi.h (modified) (4 diffs)
- trunk/src/VBox/HostDrivers/Support/testcase/tstInt.cpp (modified) (1 diff)
- trunk/src/VBox/VMM/CPUM.cpp (modified) (1 diff)
- trunk/src/VBox/VMM/MMHyper.cpp (modified) (2 diffs)
- trunk/src/VBox/VMM/PATM/PATM.cpp (modified) (1 diff)
- trunk/src/VBox/VMM/PATM/PATMPatch.cpp (modified) (2 diffs)
- trunk/src/VBox/VMM/PATM/PATMSSM.cpp (modified) (2 diffs)
- trunk/src/VBox/VMM/PDMLdr.cpp (modified) (1 diff)
- trunk/src/VBox/VMM/SELM.cpp (modified) (3 diffs)
- trunk/src/VBox/VMM/TM.cpp (modified) (1 diff)
- trunk/src/VBox/VMM/TRPM.cpp (modified) (2 diffs)
- trunk/src/VBox/VMM/VMMAll/CPUMAllRegs.cpp (modified) (5 diffs)
- trunk/src/VBox/VMM/VMMSwitcher.cpp (modified) (2 diffs)
- trunk/src/VBox/VMM/VMMSwitcher/VMMSwitcher.h (modified) (1 diff)
- trunk/src/VBox/VMM/VMMTests.cpp (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/include/VBox/cpum.h
r13778 r13830 639 639 VMMDECL(int) CPUMGetGuestDRx(PVM pVM, uint32_t iReg, uint64_t *pValue); 640 640 VMMDECL(void) CPUMGetGuestCpuId(PVM pVM, uint32_t iLeaf, uint32_t *pEax, uint32_t *pEbx, uint32_t *pEcx, uint32_t *pEdx); 641 VMMDECL(RCPTRTYPE(PCCPUMCPUID)) CPUMGetGuestCpuIdStd GCPtr(PVM pVM);642 VMMDECL(RCPTRTYPE(PCCPUMCPUID)) CPUMGetGuestCpuIdExt GCPtr(PVM pVM);643 VMMDECL(RCPTRTYPE(PCCPUMCPUID)) CPUMGetGuestCpuIdCentaur GCPtr(PVM pVM);644 VMMDECL(RCPTRTYPE(PCCPUMCPUID)) CPUMGetGuestCpuIdDef GCPtr(PVM pVM);641 VMMDECL(RCPTRTYPE(PCCPUMCPUID)) CPUMGetGuestCpuIdStdRCPtr(PVM pVM); 642 VMMDECL(RCPTRTYPE(PCCPUMCPUID)) CPUMGetGuestCpuIdExtRCPtr(PVM pVM); 643 VMMDECL(RCPTRTYPE(PCCPUMCPUID)) CPUMGetGuestCpuIdCentaurRCPtr(PVM pVM); 644 VMMDECL(RCPTRTYPE(PCCPUMCPUID)) CPUMGetGuestCpuIdDefRCPtr(PVM pVM); 645 645 VMMDECL(uint32_t) CPUMGetGuestCpuIdStdMax(PVM pVM); 646 646 VMMDECL(uint32_t) CPUMGetGuestCpuIdExtMax(PVM pVM); … … 966 966 VMMR3DECL(int) CPUMR3TermCPU(PVM pVM); 967 967 VMMR3DECL(void) CPUMR3Reset(PVM pVM); 968 VMMR3DECL(int) CPUMR3QueryGuestCtx GCPtr(PVM pVM, RCPTRTYPE(PCPUMCTX) *ppCtx);968 VMMR3DECL(int) CPUMR3QueryGuestCtxRCPtr(PVM pVM, RCPTRTYPE(PCPUMCTX) *ppCtx); 969 969 # ifdef DEBUG 970 970 VMMR3DECL(void) CPUMR3SaveEntryCtx(PVM pVM); trunk/include/VBox/vm.h
r13815 r13830 397 397 398 398 /** @def VM_GET_VMCPUID 399 * Returns the VMCPU id of the current EMT thread. 399 * Returns the VMCPU id of the current EMT. 400 * @todo r=bird: See VMMGetCpuId(). 400 401 */ 401 402 #ifdef IN_GC 402 # define VM_GET_VMCPUID(pVM) 0403 # define VM_GET_VMCPUID(pVM) 0 403 404 #elif defined(IN_RING0) 404 # define VM_GET_VMCPUID(pVM) HWACCMGetVMCPUId(pVM)405 #else 406 # define VM_GET_VMCPUID(pVM) VMR3GetVMCPUId(pVM)405 # define VM_GET_VMCPUID(pVM) HWACCMGetVMCPUId(pVM) 406 #else 407 # define VM_GET_VMCPUID(pVM) VMR3GetVMCPUId(pVM) 407 408 #endif 408 409 … … 465 466 /** Raw-mode Context VM Pointer. 466 467 * @deprecated Use VM::pVMRC. */ 467 RCPTRTYPE(struct VM *) pVMGC ;468 RCPTRTYPE(struct VM *) pVMGCUnused; 468 469 /** Raw-mode Context VM Pointer. */ 469 470 RCPTRTYPE(struct VM *) pVMRC; trunk/include/VBox/vm.mac
r13815 r13830 54 54 .pVMR3 RTR3PTR_RES 1 55 55 .pVMR0 RTR0PTR_RES 1 56 .pVMGC RTRCPTR_RES 156 .pVMGCUnused RTRCPTR_RES 1 57 57 .pVMRC RTRCPTR_RES 1 58 58 .hSelf resd 1 trunk/include/VBox/vmapi.h
r13791 r13830 44 44 * @{ */ 45 45 46 /** @def VM_GUEST_ADDR47 * Converts a current context address of data within the VM structure to the equivalent48 * guest address.49 *50 * @returns guest virtual address.51 * @param pVM Pointer to the VM.52 * @param pvInVM CC Pointer within the VM.53 * @deprecated Use VM_RC_ADDR54 */55 #ifdef IN_RING356 # define VM_GUEST_ADDR(pVM, pvInVM) ( (RTGCPTR)((RTGCUINTPTR)pVM->pVMGC + (uint32_t)((uintptr_t)(pvInVM) - (uintptr_t)pVM->pVMR3)) )57 #elif defined(IN_RING0)58 # define VM_GUEST_ADDR(pVM, pvInVM) ( (RTGCPTR)((RTGCUINTPTR)pVM->pVMGC + (uint32_t)((uintptr_t)(pvInVM) - (uintptr_t)pVM->pVMR0)) )59 #else60 # define VM_GUEST_ADDR(pVM, pvInVM) ( (RTGCPTR)(pvInVM) )61 #endif62 63 46 /** @def VM_RC_ADDR 64 47 * Converts a current context address of data within the VM structure to the equivalent … … 70 53 */ 71 54 #ifdef IN_RING3 72 # define VM_RC_ADDR(pVM, pvInVM) ( (RTRCPTR)((RTRCUINTPTR)pVM->pVM GC + (uint32_t)((uintptr_t)(pvInVM) - (uintptr_t)pVM->pVMR3)) )55 # define VM_RC_ADDR(pVM, pvInVM) ( (RTRCPTR)((RTRCUINTPTR)pVM->pVMRC + (uint32_t)((uintptr_t)(pvInVM) - (uintptr_t)pVM->pVMR3)) ) 73 56 #elif defined(IN_RING0) 74 # define VM_RC_ADDR(pVM, pvInVM) ( (RTRCPTR)((RTRCUINTPTR)pVM->pVM GC + (uint32_t)((uintptr_t)(pvInVM) - (uintptr_t)pVM->pVMR0)) )57 # define VM_RC_ADDR(pVM, pvInVM) ( (RTRCPTR)((RTRCUINTPTR)pVM->pVMRC + (uint32_t)((uintptr_t)(pvInVM) - (uintptr_t)pVM->pVMR0)) ) 75 58 #else 76 59 # define VM_RC_ADDR(pVM, pvInVM) ( (RTRCPTR)(pvInVM) ) … … 86 69 */ 87 70 #ifdef IN_GC 88 # define VM_R3_ADDR(pVM, pvInVM) ( (RTR3PTR)((RTR3UINTPTR)pVM->pVMR3 + (uint32_t)((uintptr_t)(pvInVM) - (uintptr_t)pVM->pVM GC)) )71 # define VM_R3_ADDR(pVM, pvInVM) ( (RTR3PTR)((RTR3UINTPTR)pVM->pVMR3 + (uint32_t)((uintptr_t)(pvInVM) - (uintptr_t)pVM->pVMRC)) ) 89 72 #elif defined(IN_RING0) 90 73 # define VM_R3_ADDR(pVM, pvInVM) ( (RTR3PTR)((RTR3UINTPTR)pVM->pVMR3 + (uint32_t)((uintptr_t)(pvInVM) - (uintptr_t)pVM->pVMR0)) ) … … 103 86 */ 104 87 #ifdef IN_GC 105 # define VM_R0_ADDR(pVM, pvInVM) ( (RTR0PTR)((RTR0UINTPTR)pVM->pVMR0 + (uint32_t)((uintptr_t)(pvInVM) - (uintptr_t)pVM->pVM GC)) )88 # define VM_R0_ADDR(pVM, pvInVM) ( (RTR0PTR)((RTR0UINTPTR)pVM->pVMR0 + (uint32_t)((uintptr_t)(pvInVM) - (uintptr_t)pVM->pVMRC)) ) 106 89 #elif defined(IN_RING3) 107 90 # define VM_R0_ADDR(pVM, pvInVM) ( (RTR0PTR)((RTR0UINTPTR)pVM->pVMR0 + (uint32_t)((uintptr_t)(pvInVM) - (uintptr_t)pVM->pVMR3)) ) trunk/src/VBox/HostDrivers/Support/testcase/tstInt.cpp
r11794 r13830 106 106 if (VBOX_SUCCESS(rc)) 107 107 { 108 pVM->pVM GC = 0;108 pVM->pVMRC = 0; 109 109 pVM->pVMR3 = pVM; 110 110 pVM->pVMR0 = pVMR0; trunk/src/VBox/VMM/CPUM.cpp
r13829 r13830 634 634 * @param ppCtx Receives the CPUMCTX GC pointer when successful. 635 635 */ 636 VMMR3DECL(int) CPUMR3QueryGuestCtx GCPtr(PVM pVM, RCPTRTYPE(PCPUMCTX) *ppCtx)637 { 638 LogFlow(("CPUMR3QueryGuestCtx GCPtr\n"));636 VMMR3DECL(int) CPUMR3QueryGuestCtxRCPtr(PVM pVM, RCPTRTYPE(PCPUMCTX) *ppCtx) 637 { 638 LogFlow(("CPUMR3QueryGuestCtxRCPtr\n")); 639 639 /* 640 640 * Store the address. (Later we might check how's calling, thus the RC.) 641 641 */ 642 *ppCtx = VM_ GUEST_ADDR(pVM, &pVM->cpum.s.Guest);642 *ppCtx = VM_RC_ADDR(pVM, &pVM->cpum.s.Guest); 643 643 return VINF_SUCCESS; 644 644 } trunk/src/VBox/VMM/MMHyper.cpp
r13824 r13830 111 111 { 112 112 pVM->pVMRC = (RTRCPTR)GCPtr; 113 pVM->pVMGC = pVM->pVMRC;113 pVM->pVMGCUnused = pVM->pVMRC; 114 114 for (uint32_t i = 0; i < pVM->cCPUs; i++) 115 115 pVM->aCpus[i].pVMRC = pVM->pVMRC; … … 290 290 RTGCINTPTR offDelta = GCPtrNew - GCPtrOld; 291 291 pVM->pVMRC += offDelta; 292 pVM->pVMGC = pVM->pVMRC;292 pVM->pVMGCUnused = pVM->pVMRC; 293 293 for (uint32_t i = 0; i < pVM->cCPUs; i++) 294 pVM->aCpus[i].pVMRC = pVM->pVMRC;294 pVM->aCpus[i].pVMRC = pVM->pVMRC; 295 295 296 296 pVM->mm.s.pvHyperAreaGC += offDelta; trunk/src/VBox/VMM/PATM/PATM.cpp
r13827 r13830 346 346 347 347 /* Needed for future patching of sldt/sgdt/sidt/str etc. */ 348 rc = CPUMR3QueryGuestCtx GCPtr(pVM, &pVM->patm.s.pCPUMCtxGC);348 rc = CPUMR3QueryGuestCtxRCPtr(pVM, &pVM->patm.s.pCPUMCtxGC); 349 349 AssertRCReturn(rc, rc); 350 350 trunk/src/VBox/VMM/PATM/PATMPatch.cpp
r13822 r13830 236 236 case PATM_CPUID_STD_PTR: 237 237 /* @todo dirty hack when correcting this fixup (state restore) */ 238 dest = CPUMGetGuestCpuIdStd GCPtr(pVM);238 dest = CPUMGetGuestCpuIdStdRCPtr(pVM); 239 239 break; 240 240 241 241 case PATM_CPUID_EXT_PTR: 242 242 /* @todo dirty hack when correcting this fixup (state restore) */ 243 dest = CPUMGetGuestCpuIdExt GCPtr(pVM);243 dest = CPUMGetGuestCpuIdExtRCPtr(pVM); 244 244 break; 245 245 246 246 case PATM_CPUID_CENTAUR_PTR: 247 247 /* @todo dirty hack when correcting this fixup (state restore) */ 248 dest = CPUMGetGuestCpuIdCentaur GCPtr(pVM);248 dest = CPUMGetGuestCpuIdCentaurRCPtr(pVM); 249 249 break; 250 250 251 251 case PATM_CPUID_DEF_PTR: 252 252 /* @todo dirty hack when correcting this fixup (state restore) */ 253 dest = CPUMGetGuestCpuIdDef GCPtr(pVM);253 dest = CPUMGetGuestCpuIdDefRCPtr(pVM); 254 254 break; 255 255 … … 287 287 case PATM_VM_FORCEDACTIONS: 288 288 /* @todo dirty assumptions when correcting this fixup during saved state loading. */ 289 dest = pVM->pVM GC + RT_OFFSETOF(VM, fForcedActions);289 dest = pVM->pVMRC + RT_OFFSETOF(VM, fForcedActions); 290 290 break; 291 291 trunk/src/VBox/VMM/PATM/PATMSSM.cpp
r13822 r13830 870 870 else 871 871 /* Note: rather assumptive! */ 872 if ( *pFixup >= pVM->pVM GC873 && *pFixup < pVM->pVM GC + 32)874 { 875 LogFlow(("Changing fForcedActions fixup from %x to %x\n", *pFixup, pVM->pVM GC + RT_OFFSETOF(VM, fForcedActions)));876 *pFixup = pVM->pVM GC + RT_OFFSETOF(VM, fForcedActions);872 if ( *pFixup >= pVM->pVMRC 873 && *pFixup < pVM->pVMRC + 32) 874 { 875 LogFlow(("Changing fForcedActions fixup from %x to %x\n", *pFixup, pVM->pVMRC + RT_OFFSETOF(VM, fForcedActions))); 876 *pFixup = pVM->pVMRC + RT_OFFSETOF(VM, fForcedActions); 877 877 } 878 878 else 879 if ( *pFixup >= pVM->pVM GC880 && *pFixup < pVM->pVM GC + 8192)879 if ( *pFixup >= pVM->pVMRC 880 && *pFixup < pVM->pVMRC + 8192) 881 881 { 882 882 static int cCpuidFixup = 0; … … 888 888 { 889 889 case 0: 890 *pFixup = CPUMGetGuestCpuIdDef GCPtr(pVM);890 *pFixup = CPUMGetGuestCpuIdDefRCPtr(pVM); 891 891 break; 892 892 case 1: 893 *pFixup = CPUMGetGuestCpuIdStd GCPtr(pVM);893 *pFixup = CPUMGetGuestCpuIdStdRCPtr(pVM); 894 894 break; 895 895 case 2: 896 *pFixup = CPUMGetGuestCpuIdExt GCPtr(pVM);896 *pFixup = CPUMGetGuestCpuIdExtRCPtr(pVM); 897 897 break; 898 898 case 3: 899 *pFixup = CPUMGetGuestCpuIdCentaur GCPtr(pVM);899 *pFixup = CPUMGetGuestCpuIdCentaurRCPtr(pVM); 900 900 break; 901 901 } trunk/src/VBox/VMM/PDMLdr.cpp
r13823 r13830 331 331 int rc = VINF_SUCCESS; 332 332 if (!strcmp(pszSymbol, "g_VM")) 333 *pValue = pVM->pVM GC;333 *pValue = pVM->pVMRC; 334 334 else if (!strcmp(pszSymbol, "g_CPUM")) 335 *pValue = VM_ GUEST_ADDR(pVM, &pVM->cpum);335 *pValue = VM_RC_ADDR(pVM, &pVM->cpum); 336 336 else if (!strcmp(pszSymbol, "g_TRPM")) 337 *pValue = VM_ GUEST_ADDR(pVM, &pVM->trpm);337 *pValue = VM_RC_ADDR(pVM, &pVM->trpm); 338 338 else if ( !strncmp(pszSymbol, "VMM", 3) 339 339 || !strcmp(pszSymbol, "g_Logger") trunk/src/VBox/VMM/SELM.cpp
r13827 r13830 349 349 */ 350 350 pDesc = &paGdt[pVM->selm.s.aHyperSel[SELM_HYPER_SEL_TSS] >> 3]; 351 RT GCPTR pGCTSS = VM_GUEST_ADDR(pVM, &pVM->selm.s.Tss);352 pDesc->Gen.u16BaseLow = RT_LOWORD( pGCTSS);353 pDesc->Gen.u8BaseHigh1 = RT_BYTE3( pGCTSS);354 pDesc->Gen.u8BaseHigh2 = RT_BYTE4( pGCTSS);351 RTRCPTR RCPtrTSS = VM_RC_ADDR(pVM, &pVM->selm.s.Tss); 352 pDesc->Gen.u16BaseLow = RT_LOWORD(RCPtrTSS); 353 pDesc->Gen.u8BaseHigh1 = RT_BYTE3(RCPtrTSS); 354 pDesc->Gen.u8BaseHigh2 = RT_BYTE4(RCPtrTSS); 355 355 pDesc->Gen.u16LimitLow = sizeof(VBOXTSS) - 1; 356 356 pDesc->Gen.u4LimitHigh = 0; … … 370 370 pDesc->Gen.u16LimitLow = sizeof(VBOXTSS) - 1; 371 371 pDesc->Gen.u4LimitHigh = 0; 372 pGCTSS = VM_GUEST_ADDR(pVM, &pVM->selm.s.TssTrap08);373 pDesc->Gen.u16BaseLow = RT_LOWORD( pGCTSS);374 pDesc->Gen.u8BaseHigh1 = RT_BYTE3( pGCTSS);375 pDesc->Gen.u8BaseHigh2 = RT_BYTE4( pGCTSS);372 RCPtrTSS = VM_RC_ADDR(pVM, &pVM->selm.s.TssTrap08); 373 pDesc->Gen.u16BaseLow = RT_LOWORD(RCPtrTSS); 374 pDesc->Gen.u8BaseHigh1 = RT_BYTE3(RCPtrTSS); 375 pDesc->Gen.u8BaseHigh2 = RT_BYTE4(RCPtrTSS); 376 376 pDesc->Gen.u4Type = X86_SEL_TYPE_SYS_386_TSS_AVAIL; 377 377 pDesc->Gen.u1DescType = 0; /* system */ … … 438 438 pVM->selm.s.TssTrap08.selLdt = 0; 439 439 pVM->selm.s.TssTrap08.eflags = 0x2; /* all cleared */ 440 pVM->selm.s.TssTrap08.ecx = VM_ GUEST_ADDR(pVM, &pVM->selm.s.Tss);/* setup ecx to normal Hypervisor TSS address. */440 pVM->selm.s.TssTrap08.ecx = VM_RC_ADDR(pVM, &pVM->selm.s.Tss); /* setup ecx to normal Hypervisor TSS address. */ 441 441 pVM->selm.s.TssTrap08.edi = pVM->selm.s.TssTrap08.ecx; 442 442 pVM->selm.s.TssTrap08.eax = pVM->selm.s.TssTrap08.ecx; 443 pVM->selm.s.TssTrap08.edx = VM_ GUEST_ADDR(pVM, pVM);/* setup edx VM address. */443 pVM->selm.s.TssTrap08.edx = VM_RC_ADDR(pVM, pVM); /* setup edx VM address. */ 444 444 pVM->selm.s.TssTrap08.edi = pVM->selm.s.TssTrap08.edx; 445 445 pVM->selm.s.TssTrap08.ebx = pVM->selm.s.TssTrap08.edx; trunk/src/VBox/VMM/TM.cpp
r13818 r13830 854 854 855 855 /* 856 * Iterate the timers updating the pVM GC pointers.856 * Iterate the timers updating the pVMRC pointers. 857 857 */ 858 858 for (PTMTIMER pTimer = pVM->tm.s.pCreated; pTimer; pTimer = pTimer->pBigNext) trunk/src/VBox/VMM/TRPM.cpp
r13823 r13830 639 639 * Update IDTR (limit is including!). 640 640 */ 641 CPUMSetHyperIDTR(pVM, VM_ GUEST_ADDR(pVM, &pVM->trpm.s.aIdt[0]), sizeof(pVM->trpm.s.aIdt)-1);641 CPUMSetHyperIDTR(pVM, VM_RC_ADDR(pVM, &pVM->trpm.s.aIdt[0]), sizeof(pVM->trpm.s.aIdt)-1); 642 642 643 643 if (!pVM->trpm.s.fDisableMonitoring) … … 649 649 AssertRC(rc); 650 650 } 651 pVM->trpm.s.pvMonShwIdtRC = VM_ GUEST_ADDR(pVM, &pVM->trpm.s.aIdt[0]);651 pVM->trpm.s.pvMonShwIdtRC = VM_RC_ADDR(pVM, &pVM->trpm.s.aIdt[0]); 652 652 rc = PGMR3HandlerVirtualRegister(pVM, PGMVIRTHANDLERTYPE_HYPERVISOR, pVM->trpm.s.pvMonShwIdtRC, pVM->trpm.s.pvMonShwIdtRC + sizeof(pVM->trpm.s.aIdt) - 1, 653 653 0, 0, "trpmRCShadowIDTWriteHandler", 0, "Shadow IDT write access handler"); trunk/src/VBox/VMM/VMMAll/CPUMAllRegs.cpp
r13532 r13830 63 63 pVM->cpum.s.pHyperCoreR3 = (R3PTRTYPE(PCPUMCTXCORE))VM_R3_ADDR(pVM, pCtxCore); 64 64 pVM->cpum.s.pHyperCoreR0 = (R0PTRTYPE(PCPUMCTXCORE))VM_R0_ADDR(pVM, pCtxCore); 65 pVM->cpum.s.pHyperCoreRC = (RCPTRTYPE(PCPUMCTXCORE))VM_ GUEST_ADDR(pVM, pCtxCore);65 pVM->cpum.s.pHyperCoreRC = (RCPTRTYPE(PCPUMCTXCORE))VM_RC_ADDR(pVM, pCtxCore); 66 66 } 67 67 else … … 1045 1045 * @remark Intended for PATM. 1046 1046 */ 1047 VMMDECL(RCPTRTYPE(PCCPUMCPUID)) CPUMGetGuestCpuIdStd GCPtr(PVM pVM)1048 { 1049 return RCPTRTYPE(PCCPUMCPUID)VM_ GUEST_ADDR(pVM, &pVM->cpum.s.aGuestCpuIdStd[0]);1047 VMMDECL(RCPTRTYPE(PCCPUMCPUID)) CPUMGetGuestCpuIdStdRCPtr(PVM pVM) 1048 { 1049 return RCPTRTYPE(PCCPUMCPUID)VM_RC_ADDR(pVM, &pVM->cpum.s.aGuestCpuIdStd[0]); 1050 1050 } 1051 1051 … … 1060 1060 * @remark Intended for PATM. 1061 1061 */ 1062 VMMDECL(RCPTRTYPE(PCCPUMCPUID)) CPUMGetGuestCpuIdExt GCPtr(PVM pVM)1063 { 1064 return (RCPTRTYPE(PCCPUMCPUID))VM_ GUEST_ADDR(pVM, &pVM->cpum.s.aGuestCpuIdExt[0]);1062 VMMDECL(RCPTRTYPE(PCCPUMCPUID)) CPUMGetGuestCpuIdExtRCPtr(PVM pVM) 1063 { 1064 return (RCPTRTYPE(PCCPUMCPUID))VM_RC_ADDR(pVM, &pVM->cpum.s.aGuestCpuIdExt[0]); 1065 1065 } 1066 1066 … … 1075 1075 * @remark Intended for PATM. 1076 1076 */ 1077 VMMDECL(RCPTRTYPE(PCCPUMCPUID)) CPUMGetGuestCpuIdCentaur GCPtr(PVM pVM)1078 { 1079 return (RCPTRTYPE(PCCPUMCPUID))VM_ GUEST_ADDR(pVM, &pVM->cpum.s.aGuestCpuIdCentaur[0]);1077 VMMDECL(RCPTRTYPE(PCCPUMCPUID)) CPUMGetGuestCpuIdCentaurRCPtr(PVM pVM) 1078 { 1079 return (RCPTRTYPE(PCCPUMCPUID))VM_RC_ADDR(pVM, &pVM->cpum.s.aGuestCpuIdCentaur[0]); 1080 1080 } 1081 1081 … … 1088 1088 * @remark Intended for PATM. 1089 1089 */ 1090 VMMDECL(RCPTRTYPE(PCCPUMCPUID)) CPUMGetGuestCpuIdDef GCPtr(PVM pVM)1091 { 1092 return (RCPTRTYPE(PCCPUMCPUID))VM_ GUEST_ADDR(pVM, &pVM->cpum.s.GuestCpuIdDef);1090 VMMDECL(RCPTRTYPE(PCCPUMCPUID)) CPUMGetGuestCpuIdDefRCPtr(PVM pVM) 1091 { 1092 return (RCPTRTYPE(PCCPUMCPUID))VM_RC_ADDR(pVM, &pVM->cpum.s.GuestCpuIdDef); 1093 1093 } 1094 1094 trunk/src/VBox/VMM/VMMSwitcher.cpp
r13823 r13830 395 395 uint32_t offCPUM = *u.pu32++; 396 396 Assert(offCPUM < sizeof(pVM->cpum)); 397 *uSrc.pu32 = (uint32_t)(VM_ GUEST_ADDR(pVM, &pVM->cpum) + offCPUM);397 *uSrc.pu32 = (uint32_t)(VM_RC_ADDR(pVM, &pVM->cpum) + offCPUM); 398 398 break; 399 399 } … … 406 406 uint32_t offVM = *u.pu32++; 407 407 Assert(offVM < sizeof(VM)); 408 *uSrc.pu32 = (uint32_t)(VM_ GUEST_ADDR(pVM, pVM) + offVM);408 *uSrc.pu32 = (uint32_t)(VM_RC_ADDR(pVM, pVM) + offVM); 409 409 break; 410 410 } trunk/src/VBox/VMM/VMMSwitcher/VMMSwitcher.h
r13717 r13830 37 37 #define FIX_GC_FAR32 7 38 38 #define FIX_GC_CPUM_OFF 8 39 #define FIX_GC_VM_OFF 9 39 #define FIX_GC_VM_OFF 9 /** @todo cleanup fixup names GC->RC, HC->R0. */ 40 40 #define FIX_HC_CPUM_OFF 10 41 41 #define FIX_HC_VM_OFF 11 trunk/src/VBox/VMM/VMMTests.cpp
r13820 r13830 66 66 CPUMPushHyper(pVM, uVariation); 67 67 CPUMPushHyper(pVM, enmTestcase); 68 CPUMPushHyper(pVM, pVM->pVM GC);68 CPUMPushHyper(pVM, pVM->pVMRC); 69 69 CPUMPushHyper(pVM, 3 * sizeof(RTRCPTR)); /* stack frame size */ 70 70 CPUMPushHyper(pVM, RCPtrEP); /* what to call */ … … 103 103 CPUMPushHyper(pVM, uVariation); 104 104 CPUMPushHyper(pVM, u8Trap + VMMGC_DO_TESTCASE_TRAP_FIRST); 105 CPUMPushHyper(pVM, pVM->pVM GC);105 CPUMPushHyper(pVM, pVM->pVMRC); 106 106 CPUMPushHyper(pVM, 3 * sizeof(RTRCPTR)); /* stack frame size */ 107 107 CPUMPushHyper(pVM, RCPtrEP); /* what to call */ … … 337 337 CPUMPushHyper(pVM, 0); 338 338 CPUMPushHyper(pVM, VMMGC_DO_TESTCASE_HYPER_INTERRUPT); 339 CPUMPushHyper(pVM, pVM->pVM GC);339 CPUMPushHyper(pVM, pVM->pVMRC); 340 340 CPUMPushHyper(pVM, 3 * sizeof(RTRCPTR)); /* stack frame size */ 341 341 CPUMPushHyper(pVM, RCPtrEP); /* what to call */ … … 399 399 CPUMPushHyper(pVM, 0); 400 400 CPUMPushHyper(pVM, VMMGC_DO_TESTCASE_NOP); 401 CPUMPushHyper(pVM, pVM->pVM GC);401 CPUMPushHyper(pVM, pVM->pVMRC); 402 402 CPUMPushHyper(pVM, 3 * sizeof(RTRCPTR)); /* stack frame size */ 403 403 CPUMPushHyper(pVM, RCPtrEP); /* what to call */ … … 526 526 CPUMPushHyper(pVM, 0); 527 527 CPUMPushHyper(pVM, VMMGC_DO_TESTCASE_HWACCM_NOP); 528 CPUMPushHyper(pVM, pVM->pVM GC);528 CPUMPushHyper(pVM, pVM->pVMRC); 529 529 CPUMPushHyper(pVM, 3 * sizeof(RTRCPTR)); /* stack frame size */ 530 530 CPUMPushHyper(pVM, RCPtrEP); /* what to call */

