vbox的更動 43872 路徑 trunk/src/VBox/VMM/VMMR3/PGMMap.cpp
- 時間撮記:
- 2012-11-15 上午08:52:11 (12 年 以前)
- 檔案:
-
- 修改 1 筆資料
圖例:
- 未更動
- 新增
- 刪除
-
trunk/src/VBox/VMM/VMMR3/PGMMap.cpp
r43387 r43872 37 37 * Internal Functions * 38 38 *******************************************************************************/ 39 #ifndef PGM_WITHOUT_MAPPINGS 39 40 static void pgmR3MapClearPDEs(PVM pVM, PPGMMAPPING pMap, unsigned iOldPDE); 40 41 static void pgmR3MapSetPDEs(PVM pVM, PPGMMAPPING pMap, unsigned iNewPDE); 41 42 static int pgmR3MapIntermediateCheckOne(PVM pVM, uintptr_t uAddress, unsigned cPages, PX86PT pPTDefault, PX86PTPAE pPTPaeDefault); 42 43 static void pgmR3MapIntermediateDoOne(PVM pVM, uintptr_t uAddress, RTHCPHYS HCPhys, unsigned cPages, PX86PT pPTDefault, PX86PTPAE pPTPaeDefault); 44 #else 45 # define pgmR3MapClearPDEs(pVM, pMap, iNewPDE) do { } while (0) 46 # define pgmR3MapSetPDEs(pVM, pMap, iNewPDE) do { } while (0) 47 #endif 43 48 44 49 … … 210 215 } 211 216 217 #ifdef VBOX_WITH_UNUSED_CODE 212 218 213 219 /** … … 280 286 return VERR_INVALID_PARAMETER; 281 287 } 288 289 #endif /* unused */ 282 290 283 291 … … 484 492 { 485 493 RTGCPTR cb = 0; 494 #ifndef PGM_WITHOUT_MAPPINGS 486 495 for (PPGMMAPPING pCur = pVM->pgm.s.pMappingsR3; pCur; pCur = pCur->pNextR3) 487 496 cb += pCur->cb; 497 #endif 488 498 489 499 *pcb = cb; … … 507 517 GCPtrBase, cb, pVM->pgm.s.fMappingsFixed, pVM->pgm.s.fMappingsDisabled)); 508 518 509 /* 510 * Ignore the additions mapping fix call if disabled.511 */512 if (!pgmMapAreMappingsEnabled(pVM))513 {514 Assert(HMIsEnabled(pVM));515 return VINF_SUCCESS;516 }517 518 /*519 * Only applies to VCPU 0 as we don't support SMP guests with raw mode.520 */521 Assert(pVM->cCpus == 1);522 PVMCPU pVCpu = &pVM->aCpus[0];523 524 /*525 * Before we do anything we'll do a forced PD sync to try make sure any526 * pending relocations because of these mappings have been resolved. 527 */ 528 PGMSyncCR3(pVCpu, CPUMGetGuestCR0(pVCpu), CPUMGetGuestCR3(pVCpu), CPUMGetGuestCR4(pVCpu), true);529 530 return pgmR3MappingsFixInternal(pVM, GCPtrBase, cb); 531 } 532 533 519 #ifndef PGM_WITHOUT_MAPPINGS 520 if (pgmMapAreMappingsEnabled(pVM)) 521 { 522 /* 523 * Only applies to VCPU 0 as we don't support SMP guests with raw mode. 524 */ 525 Assert(pVM->cCpus == 1); 526 PVMCPU pVCpu = &pVM->aCpus[0]; 527 528 /* 529 * Before we do anything we'll do a forced PD sync to try make sure any 530 * pending relocations because of these mappings have been resolved. 531 */ 532 PGMSyncCR3(pVCpu, CPUMGetGuestCR0(pVCpu), CPUMGetGuestCR3(pVCpu), CPUMGetGuestCR4(pVCpu), true); 533 534 return pgmR3MappingsFixInternal(pVM, GCPtrBase, cb); 535 } 536 #endif /* !PGM_WITHOUT_MAPPINGS */ 537 538 Assert(HMIsEnabled(pVM)); 539 return VINF_SUCCESS; 540 } 541 542 543 #ifndef PGM_WITHOUT_MAPPINGS 534 544 /** 535 545 * Internal worker for PGMR3MappingsFix and pgmR3Load. … … 671 681 return VINF_SUCCESS; 672 682 } 683 #endif /*!PGM_WITHOUT_MAPPINGS*/ 684 673 685 674 686 … … 689 701 return VINF_SUCCESS; 690 702 703 #ifdef VBOX_WITH_RAW_MODE 691 704 /* 692 705 * Deactivate (only applies to Virtual CPU #0). … … 699 712 AssertRCReturn(rc, rc); 700 713 } 714 #endif /* VBOX_WITH_RAW_MODE */ 701 715 702 716 /* … … 758 772 } 759 773 774 #ifndef PGM_WITHOUT_MAPPINGS 760 775 761 776 /** … … 1345 1360 } 1346 1361 1362 #endif /* !PGM_WITHOUT_MAPPINGS */ 1347 1363 1348 1364 /**
注意:
瀏覽 TracChangeset
來幫助您使用更動檢視器