Changeset 39154 in vbox for trunk/src/VBox/VMM/VMMAll
- Timestamp:
- Oct 31, 2011 3:36:29 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IOMAllMMIO.cpp
r39112 r39154 85 85 * VINF_IOM_HC_MMIO_READ may be returned. 86 86 * 87 * @param pVM The VM handle. 87 88 * @param pRange The range to write to. 88 89 * @param GCPhys The physical address to start writing. … … 90 91 * @param cbValue The size of the value to write. 91 92 */ 92 static VBOXSTRICTRC iomMMIODoComplicatedWrite(P IOMMMIORANGE pRange, RTGCPHYS GCPhys, void const *pvValue, unsigned cbValue)93 static VBOXSTRICTRC iomMMIODoComplicatedWrite(PVM pVM, PIOMMMIORANGE pRange, RTGCPHYS GCPhys, void const *pvValue, unsigned cbValue) 93 94 { 94 95 AssertReturn( (pRange->fFlags & IOMMMIO_FLAGS_WRITE_MODE) != IOMMMIO_FLAGS_WRITE_PASSTHRU … … 100 101 101 102 /* 103 * Do debug stop if requested. 104 */ 105 int rc = VINF_SUCCESS; NOREF(pVM); 106 #ifdef VBOX_STRICT 107 if (pRange->fFlags & IOMMMIO_FLAGS_DBGSTOP_ON_COMPLICATED_WRITE) 108 # ifdef IN_RING3 109 rc = DBGFR3EventSrc(pVM, DBGFEVENT_DEV_STOP, RT_SRC_POS, 110 "Complicated write %#x byte at %RGp to %s\n", cbValue, GCPhys, R3STRING(pRange->pszDesc)); 111 # else 112 return VINF_IOM_HC_MMIO_WRITE; 113 # endif 114 #endif 115 116 117 /* 102 118 * Split and conquer. 103 119 */ 104 int rc = VINF_SUCCESS;105 120 for (;;) 106 121 { … … 251 266 GCPhysFault, (void *)pvData, cb); /** @todo fix const!! */ 252 267 else 253 rc = iomMMIODoComplicatedWrite(p Range, GCPhysFault, pvData, cb);268 rc = iomMMIODoComplicatedWrite(pVM, pRange, GCPhysFault, pvData, cb); 254 269 } 255 270 else … … 271 286 * VINF_IOM_HC_MMIO_WRITE may be returned. 272 287 * 288 * @param pVM The VM handle. 273 289 * @param pRange The range to read from. 274 290 * @param GCPhys The physical address to start reading. … … 276 292 * @param cbValue The size of the value to read. 277 293 */ 278 static VBOXSTRICTRC iomMMIODoComplicatedRead(P IOMMMIORANGE pRange, RTGCPHYS GCPhys, void *pvValue, unsigned cbValue)294 static VBOXSTRICTRC iomMMIODoComplicatedRead(PVM pVM, PIOMMMIORANGE pRange, RTGCPHYS GCPhys, void *pvValue, unsigned cbValue) 279 295 { 280 296 AssertReturn( (pRange->fFlags & IOMMMIO_FLAGS_READ_MODE) == IOMMMIO_FLAGS_READ_DWORD … … 285 301 286 302 /* 303 * Do debug stop if requested. 304 */ 305 int rc = VINF_SUCCESS; NOREF(pVM); 306 #ifdef VBOX_STRICT 307 if (pRange->fFlags & IOMMMIO_FLAGS_DBGSTOP_ON_COMPLICATED_WRITE) 308 # ifdef IN_RING3 309 rc = DBGFR3EventSrc(pVM, DBGFEVENT_DEV_STOP, RT_SRC_POS, 310 "Complicated read %#x byte at %RGp to %s\n", cbValue, GCPhys, R3STRING(pRange->pszDesc)); 311 # else 312 return VINF_IOM_HC_MMIO_READ; 313 # endif 314 #endif 315 316 /* 287 317 * Split and conquer. 288 318 */ 289 int rc = VINF_SUCCESS;290 319 for (;;) 291 320 { … … 439 468 rc = pRange->CTX_SUFF(pfnReadCallback)(pRange->CTX_SUFF(pDevIns), pRange->CTX_SUFF(pvUser), GCPhys, pvValue, cbValue); 440 469 else 441 rc = iomMMIODoComplicatedRead(p Range, GCPhys, pvValue, cbValue);470 rc = iomMMIODoComplicatedRead(pVM, pRange, GCPhys, pvValue, cbValue); 442 471 } 443 472 else … … 1804 1833 pu32Value, (unsigned)cbValue); 1805 1834 else 1806 rc = iomMMIODoComplicatedRead(p Range, GCPhys, pu32Value, (unsigned)cbValue);1835 rc = iomMMIODoComplicatedRead(pVM, pRange, GCPhys, pu32Value, (unsigned)cbValue); 1807 1836 STAM_PROFILE_STOP(&pStats->CTX_SUFF_Z(ProfRead), a); 1808 1837 switch (VBOXSTRICTRC_VAL(rc)) … … 1933 1962 GCPhys, &u32Value, (unsigned)cbValue); 1934 1963 else 1935 rc = iomMMIODoComplicatedWrite(p Range, GCPhys, &u32Value, (unsigned)cbValue);1964 rc = iomMMIODoComplicatedWrite(pVM, pRange, GCPhys, &u32Value, (unsigned)cbValue); 1936 1965 STAM_PROFILE_STOP(&pStats->CTX_SUFF_Z(ProfWrite), a); 1937 1966 #ifndef IN_RING3
Note:
See TracChangeset
for help on using the changeset viewer.