- Timestamp:
- Aug 16, 2016 2:01:20 PM (8 years ago)
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 27 edited
-
VMMAll/EMAll.cpp (modified) (1 diff)
-
VMMAll/PGMAllPool.cpp (modified) (2 diffs)
-
VMMAll/TMAll.cpp (modified) (1 diff)
-
VMMR0/PGMR0.cpp (modified) (2 diffs)
-
VMMR0/VMMR0.cpp (modified) (1 diff)
-
VMMR3/CPUMR3CpuId.cpp (modified) (1 diff)
-
VMMR3/CSAM.cpp (modified) (2 diffs)
-
VMMR3/DBGF.cpp (modified) (1 diff)
-
VMMR3/DBGFBp.cpp (modified) (1 diff)
-
VMMR3/DBGFR3Type.cpp (modified) (1 diff)
-
VMMR3/EM.cpp (modified) (1 diff)
-
VMMR3/FTM.cpp (modified) (2 diffs)
-
VMMR3/HM.cpp (modified) (1 diff)
-
VMMR3/PATM.cpp (modified) (4 diffs)
-
VMMR3/PATMPatch.cpp (modified) (4 diffs)
-
VMMR3/PATMSSM.cpp (modified) (2 diffs)
-
VMMR3/PDMAsyncCompletionFileNormal.cpp (modified) (1 diff)
-
VMMR3/PDMDriver.cpp (modified) (1 diff)
-
VMMR3/PDMThread.cpp (modified) (1 diff)
-
VMMR3/PGMDbg.cpp (modified) (2 diffs)
-
VMMR3/PGMPhys.cpp (modified) (1 diff)
-
VMMR3/PGMPool.cpp (modified) (2 diffs)
-
VMMR3/VMM.cpp (modified) (2 diffs)
-
VMMR3/VMMTests.cpp (modified) (1 diff)
-
VMMR3/VMReq.cpp (modified) (2 diffs)
-
VMMRC/VMMRC.cpp (modified) (1 diff)
-
testcase/tstPDMAsyncCompletionStress.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/EMAll.cpp
r63465 r63560 1142 1142 1143 1143 /* We only execute 32-bits protected mode code in raw mode, so no need to bother to check for 16-bits code here. */ 1144 /* @todo:we don't verify all the edge cases that generate #GP faults */1144 /** @todo we don't verify all the edge cases that generate #GP faults */ 1145 1145 1146 1146 Assert(pRegFrame == CPUMGetGuestCtxCore(pVCpu)); -
trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp
r63465 r63560 156 156 return VINF_SUCCESS; 157 157 #else 158 /* @todo in RC we could attempt to use the virtual address, although this can cause many faults (PAE Windows XP guest). */158 /** @todo in RC we could attempt to use the virtual address, although this can cause many faults (PAE Windows XP guest). */ 159 159 NOREF(pvSrc); 160 160 return PGMPhysSimpleReadGCPhys(pVM, pvDst, GCPhysSrc & ~(RTGCPHYS)(cb - 1), cb); … … 2166 2166 int rc = pgmPoolFlushPage(pPool, pPage); 2167 2167 /* This flush was initiated by us and not the guest, so explicitly flush the TLB. */ 2168 /* todo:find out why this is necessary; pgmPoolFlushPage should trigger a flush if one is really needed. */2168 /** @todo find out why this is necessary; pgmPoolFlushPage should trigger a flush if one is really needed. */ 2169 2169 if (rc == VINF_SUCCESS) 2170 2170 PGM_INVL_ALL_VCPU_TLBS(pVM); -
trunk/src/VBox/VMM/VMMAll/TMAll.cpp
r62478 r63560 1930 1930 RTThreadSleep(1); 1931 1931 #else 1932 /** @todo call host and yield cpu after a while. */1932 /** @todo call host and yield cpu after a while. */ 1933 1933 #endif 1934 1934 break; -
trunk/src/VBox/VMM/VMMR0/PGMR0.cpp
r62478 r63560 277 277 278 278 if (pGVM->rawpci.s.pfnContigMemInfo) 279 /** @todo :what do we do on failure? */279 /** @todo what do we do on failure? */ 280 280 pGVM->rawpci.s.pfnContigMemInfo(&pGVM->rawpci.s, HCPhys, GCPhys, PAGE_SIZE, PCIRAW_MEMINFO_MAP); 281 281 … … 301 301 302 302 if (pGVM->rawpci.s.pfnContigMemInfo) 303 /** @todo :what do we do on failure? */303 /** @todo what do we do on failure? */ 304 304 pGVM->rawpci.s.pfnContigMemInfo(&pGVM->rawpci.s, 0, GCPhys, PAGE_SIZE, PCIRAW_MEMINFO_UNMAP); 305 305 -
trunk/src/VBox/VMM/VMMR0/VMMR0.cpp
r62478 r63560 1710 1710 # ifdef DEBUG_sandervl 1711 1711 /* Make sure that log flushes can jump back to ring-3; annoying to get an incomplete log (this is risky though as the code doesn't take this into account). */ 1712 /* Todo:this can have bad side effects for unexpected jumps back to r3. */1712 /** @todo this can have bad side effects for unexpected jumps back to r3. */ 1713 1713 rc = GMMR0CheckSharedModulesStart(pVM); 1714 1714 if (rc == VINF_SUCCESS) -
trunk/src/VBox/VMM/VMMR3/CPUMR3CpuId.cpp
r62869 r63560 2871 2871 { 2872 2872 pCurLeaf->uEcx = X86_CPUID_MWAIT_ECX_EXT | X86_CPUID_MWAIT_ECX_BREAKIRQIF0; 2873 /** @todo :for now we just expose host's MWAIT C-states, although conceptually2873 /** @todo for now we just expose host's MWAIT C-states, although conceptually 2874 2874 it shall be part of our power management virtualization model */ 2875 2875 #if 0 -
trunk/src/VBox/VMM/VMMR3/CSAM.cpp
r62647 r63560 559 559 AssertRC(rc); 560 560 561 /* @todo triggers assertion in MMHyperFree */561 /** @todo triggers assertion in MMHyperFree */ 562 562 #if 0 563 563 for(int i=0;i<CSAM_PAGEBMP_CHUNKS;i++) … … 2305 2305 if (pPageRec->page.fMonitorActive) 2306 2306 { 2307 /* @todo -> this is expensive (cr3 reload)!!!2307 /** @todo -> this is expensive (cr3 reload)!!! 2308 2308 * if this happens often, then reuse it instead!!! 2309 2309 */ -
trunk/src/VBox/VMM/VMMR3/DBGF.cpp
r62478 r63560 749 749 uint32_t eip = CPUMGetGuestEIP(pVM); 750 750 #else 751 /* @todo SMP support!! */751 /** @todo SMP support!! */ 752 752 PCPUMCTX pCtx = CPUMQueryGuestCtxPtr(VMMGetCpu(pVM)); 753 753 RTGCPTR eip = pCtx->rip + pCtx->cs.u64Base; -
trunk/src/VBox/VMM/VMMR3/DBGFBp.cpp
r62637 r63560 457 457 static int dbgfR3BpInt3Disarm(PUVM pUVM, PDBGFBP pBp) 458 458 { 459 /* @todo SMP support! */459 /** @todo SMP support! */ 460 460 VMCPUID idCpu = 0; 461 461 -
trunk/src/VBox/VMM/VMMR3/DBGFR3Type.cpp
r62637 r63560 761 761 } 762 762 else 763 MMR3HeapFree(pVal); /** @todo :Leak for embedded structs. */763 MMR3HeapFree(pVal); /** @todo Leak for embedded structs. */ 764 764 } 765 765 else -
trunk/src/VBox/VMM/VMMR3/EM.cpp
r63465 r63560 1758 1758 PCPUMCTX pCtx = pVCpu->em.s.pCtx; 1759 1759 1760 /** @todo :check for 16 or 32 bits code! (D bit in the code selector) */1760 /** @todo check for 16 or 32 bits code! (D bit in the code selector) */ 1761 1761 Log(("Forced action VMCPU_FF_CSAM_SCAN_PAGE\n")); 1762 1762 -
trunk/src/VBox/VMM/VMMR3/FTM.cpp
r62478 r63560 775 775 if (RT_SUCCESS(rc)) 776 776 { 777 /** todo:verify VM config. */777 /** @todo verify VM config. */ 778 778 break; 779 779 } … … 962 962 963 963 pVM->ftm.s.fActivateStandby = true; 964 /** todo:prevent split-brain. */964 /** @todo prevent split-brain. */ 965 965 break; 966 966 } -
trunk/src/VBox/VMM/VMMR3/HM.cpp
r62647 r63560 2048 2048 Assert(pVM->hm.s.cbGuestPatchMem == cbPatchMem); 2049 2049 2050 /* @todo Potential deadlock when other VCPUs are waiting on the IOM lock (we own it)!! */2050 /** @todo Potential deadlock when other VCPUs are waiting on the IOM lock (we own it)!! */ 2051 2051 int rc = VMMR3EmtRendezvous(pVM, VMMEMTRENDEZVOUS_FLAGS_TYPE_ONE_BY_ONE, hmR3RemovePatches, 2052 2052 (void *)(uintptr_t)VMMGetCpuId(pVM)); -
trunk/src/VBox/VMM/VMMR3/PATM.cpp
r62651 r63560 857 857 * Disable patch; this is not a good solution 858 858 */ 859 /* @todo hopefully it was completely overwritten (if the read was successful)!!!! */859 /** @todo hopefully it was completely overwritten (if the read was successful)!!!! */ 860 860 pPatch->patch.uState = PATCH_DISABLED; 861 861 } … … 939 939 * Disable patch; this is not a good solution 940 940 */ 941 /* @todo hopefully it was completely overwritten (if the read was successful)!!!! */941 /** @todo hopefully it was completely overwritten (if the read was successful)!!!! */ 942 942 pPatch->patch.uState = PATCH_DISABLED; 943 943 } … … 1654 1654 1655 1655 #if 0 1656 /// @todo we can handle certain in/out and privileged instructions in the guest context1656 /// @todo we can handle certain in/out and privileged instructions in the guest context 1657 1657 if (pCpu->pCurInstr->fOpType & DISOPTYPE_PRIVILEGED && pCpu->pCurInstr->uOpcode != OP_STI) 1658 1658 { … … 1992 1992 1993 1993 case OP_STR: 1994 #ifdef VBOX_WITH_SAFE_STR /* @todo remove DISOPTYPE_PRIVILEGED_NOTRAP from disasm table and move OP_STR into #ifndef */1994 #ifdef VBOX_WITH_SAFE_STR /** @todo remove DISOPTYPE_PRIVILEGED_NOTRAP from disasm table and move OP_STR into #ifndef */ 1995 1995 /* Now safe because our shadow TR entry is identical to the guest's. */ 1996 1996 goto duplicate_instr; -
trunk/src/VBox/VMM/VMMR3/PATMPatch.cpp
r62652 r63560 118 118 Assert(pRec); 119 119 pRec->Core.Key = (AVLPVKEY)pRelocHC; 120 pRec->pRelocPos = pRelocHC; /* @todo redundant. */120 pRec->pRelocPos = pRelocHC; /** @todo redundant. */ 121 121 pRec->pSource = pSource; 122 122 pRec->pDest = pDest; … … 138 138 139 139 pRec->Core.Key = (AVLPVKEY)pJumpHC; 140 pRec->pJumpHC = pJumpHC; /* @todo redundant. */140 pRec->pJumpHC = pJumpHC; /** @todo redundant. */ 141 141 pRec->offDispl = offset; 142 142 pRec->pTargetGC = pTargetGC; … … 1277 1277 pPB[1] = MAKE_MODRM(mod, reg, rm); 1278 1278 1279 /// @todo :make this an array in the context structure1279 /// @todo make this an array in the context structure 1280 1280 switch (ctrlreg) 1281 1281 { … … 1465 1465 uint32_t i; 1466 1466 1467 /* @todo segment prefix (untested) */1467 /** @todo segment prefix (untested) */ 1468 1468 Assert(pCpu->fPrefix == DISPREFIX_NONE); 1469 1469 -
trunk/src/VBox/VMM/VMMR3/PATMSSM.cpp
r62639 r63560 60 60 /* GC pointer of privileged instruction */ 61 61 RCPTRTYPE(uint8_t *) pPrivInstrGC; 62 R3PTRTYPE(uint8_t *) unusedHC; /* todo Can't remove due to structure size dependencies in saved states. */62 R3PTRTYPE(uint8_t *) unusedHC; /** @todo Can't remove due to structure size dependencies in saved states. */ 63 63 uint8_t aPrivInstr[MAX_INSTR_SIZE]; 64 64 uint32_t cbPrivInstr; … … 1513 1513 * Disable patch; this is not a good solution 1514 1514 */ 1515 /* @todo hopefully it was completely overwritten (if the read was successful)!!!! */1515 /** @todo hopefully it was completely overwritten (if the read was successful)!!!! */ 1516 1516 pPatch->uState = PATCH_DISABLED; 1517 1517 } -
trunk/src/VBox/VMM/VMMR3/PDMAsyncCompletionFileNormal.cpp
r62655 r63560 898 898 pTask->offBounceBuffer = pTask->Off - offStart; 899 899 900 /** @todo :I think we need something like a RTMemAllocAligned method here.900 /** @todo I think we need something like a RTMemAllocAligned method here. 901 901 * Current assumption is that the maximum alignment is 4096byte 902 902 * (GPT disk on Windows) -
trunk/src/VBox/VMM/VMMR3/PDMDriver.cpp
r62643 r63560 699 699 pNew->Internal.s.pVMRC = pDrv->pReg->fFlags & PDM_DRVREG_FLAGS_RC ? pVM->pVMRC : NIL_RTRCPTR; 700 700 //pNew->Internal.s.fDetaching = false; 701 pNew->Internal.s.fVMSuspended = true; /** @todo :should be 'false', if driver is attached at runtime. */701 pNew->Internal.s.fVMSuspended = true; /** @todo should be 'false', if driver is attached at runtime. */ 702 702 //pNew->Internal.s.fVMReset = false; 703 703 pNew->Internal.s.fHyperHeap = fHyperHeap; -
trunk/src/VBox/VMM/VMMR3/PDMThread.cpp
r62478 r63560 20 20 * Header Files * 21 21 *********************************************************************************************************************************/ 22 /// @todo \#define LOG_GROUP LOG_GROUP_PDM_THREAD22 /// @todo \#define LOG_GROUP LOG_GROUP_PDM_THREAD 23 23 #include "PDMInternal.h" 24 24 #include <VBox/vmm/pdm.h> -
trunk/src/VBox/VMM/VMMR3/PGMDbg.cpp
r62478 r63560 332 332 AssertReturn(pVM, VERR_INVALID_PARAMETER); 333 333 334 /* @todo SMP support! */334 /** @todo SMP support! */ 335 335 PVMCPU pVCpu = &pVM->aCpus[0]; 336 336 … … 388 388 AssertReturn(pVM, VERR_INVALID_PARAMETER); 389 389 390 /* @todo SMP support! */390 /** @todo SMP support! */ 391 391 PVMCPU pVCpu = &pVM->aCpus[0]; 392 392 -
trunk/src/VBox/VMM/VMMR3/PGMPhys.cpp
r63465 r63560 4327 4327 } 4328 4328 4329 /* todo:we should split this up into an allocate and flush operation. sometimes you want to flush and not allocate more (which will trigger the vm account limit error) */4329 /** @todo we should split this up into an allocate and flush operation. sometimes you want to flush and not allocate more (which will trigger the vm account limit error) */ 4330 4330 if ( rc == VERR_GMM_HIT_VM_ACCOUNT_LIMIT 4331 4331 && pVM->pgm.s.cHandyPages > 0) -
trunk/src/VBox/VMM/VMMR3/PGMPool.cpp
r62478 r63560 175 175 LogRel(("PGM: PGMPool: cMaxPages=%u (u64MaxPages=%llu)\n", cMaxPages, u64MaxPages)); 176 176 177 /** todo:177 /** @todo 178 178 * We need to be much more careful with our allocation strategy here. 179 179 * For nested paging we don't need pool user info nor extents at all, but … … 846 846 bool fFirstMsg = true; 847 847 848 /* Todo:cover other paging modes too. */848 /** @todo cover other paging modes too. */ 849 849 if (pPage->enmKind == PGMPOOLKIND_PAE_PT_FOR_PAE_PT) 850 850 { -
trunk/src/VBox/VMM/VMMR3/VMM.cpp
r62647 r63560 305 305 } 306 306 } 307 /** @todo :Need failure cleanup. */307 /** @todo Need failure cleanup. */ 308 308 309 309 //more todo in here? … … 1409 1409 } while (rc == VINF_EM_RAW_INTERRUPT_HYPER); 1410 1410 1411 #if 0 /* todo triggers too often */1411 #if 0 /** @todo triggers too often */ 1412 1412 Assert(!VMCPU_FF_IS_SET(pVCpu, VMCPU_FF_TO_R3)); 1413 1413 #endif -
trunk/src/VBox/VMM/VMMR3/VMMTests.cpp
r63429 r63560 378 378 379 379 vmmR3DoTrapTest(pVM, 0xd, 0, VERR_TRPM_DONT_PANIC, 0xf0f0f0f0, "vmmGCTestTrap0d_FaultEIP", "ltr #GP"); 380 /// @todo find a better \#GP case, on intel ltr will \#PF (busy update?) and not \#GP.380 /// @todo find a better \#GP case, on intel ltr will \#PF (busy update?) and not \#GP. 381 381 //vmmR3DoTrapTest(pVM, 0xd, 1, VERR_TRPM_DONT_PANIC, 0xf0f0f0f0, "vmmGCTestTrap0d_FaultEIP", "ltr #GP WP"); 382 382 -
trunk/src/VBox/VMM/VMMR3/VMReq.cpp
r62647 r63560 654 654 if (RT_FAILURE(rc)) 655 655 return rc; 656 #if 0 /// @todo @bugref{4725} - def RT_LOCK_STRICT656 #if 0 /// @todo @bugref{4725} - def RT_LOCK_STRICT 657 657 for (VMCPUID idCpu = 0; idCpu < pUVM->cCpus; idCpu++) 658 658 RTSemEventAddSignaller(pReq->EventSem, pUVM->aCpus[idCpu].vm.s.ThreadEMT); … … 701 701 return rc; 702 702 } 703 #if 0 /// @todo @bugref{4725} - def RT_LOCK_STRICT703 #if 0 /// @todo @bugref{4725} - def RT_LOCK_STRICT 704 704 for (VMCPUID idCpu = 0; idCpu < pUVM->cCpus; idCpu++) 705 705 RTSemEventAddSignaller(pReq->EventSem, pUVM->aCpus[idCpu].vm.s.ThreadEMT); -
trunk/src/VBox/VMM/VMMRC/VMMRC.cpp
r62601 r63560 63 63 VMMRCDECL(int) VMMRCEntry(PVM pVM, unsigned uOperation, unsigned uArg, ...) 64 64 { 65 /* todo */65 /** @todo */ 66 66 switch (uOperation) 67 67 { -
trunk/src/VBox/VMM/testcase/tstPDMAsyncCompletionStress.cpp
r62776 r63560 397 397 if (pTestTask->fWrite) 398 398 { 399 /* @todo Do something sensible here. */399 /** @todo Do something sensible here. */ 400 400 } 401 401 else
Note:
See TracChangeset
for help on using the changeset viewer.

