Changeset 48872 in vbox for trunk/src/VBox/Devices/Storage
- Timestamp:
- Oct 4, 2013 2:53:40 AM (12 years ago)
- svn:sync-xref-src-repo-rev:
- 89541
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Storage/DrvVD.cpp
r48744 r48872 313 313 Assert(!pvUser); 314 314 pStorageBackend->rcReqLast = rcReq; 315 pStorageBackend->fSyncIoPending = false;315 ASMAtomicWriteBool(&pStorageBackend->fSyncIoPending, false); 316 316 RTSemEventSignal(pStorageBackend->EventSem); 317 317 } … … 350 350 if (RT_SUCCESS(rc)) 351 351 { 352 uint32_t fFlags = 353 354 352 uint32_t fFlags = (fOpen & RTFILE_O_ACCESS_MASK) == RTFILE_O_READ 353 ? PDMACEP_FILE_FLAGS_READ_ONLY 354 : 0; 355 355 if (pThis->fShareable) 356 356 { … … 373 373 if (RT_SUCCESS(rc)) 374 374 { 375 LogFlow(("drvvdAsyncIOOpen: Successfully opened '%s'; fOpen=%#x pStorage=%p\n", 376 pszLocation, fOpen, pStorageBackend)); 375 377 *ppStorage = pStorageBackend; 376 378 return VINF_SUCCESS; … … 413 415 PPDMASYNCCOMPLETIONTASK pTask; 414 416 415 Assert(!pStorageBackend->fSyncIoPending);416 A SMAtomicXchgBool(&pStorageBackend->fSyncIoPending, true);417 bool fOld = ASMAtomicXchgBool(&pStorageBackend->fSyncIoPending, true); 418 Assert(!fOld); 417 419 DataSeg.cbSeg = cbRead; 418 420 DataSeg.pvSeg = pvBuf; … … 445 447 PPDMASYNCCOMPLETIONTASK pTask; 446 448 447 Assert(!pStorageBackend->fSyncIoPending);448 A SMAtomicXchgBool(&pStorageBackend->fSyncIoPending, true);449 bool fOld = ASMAtomicXchgBool(&pStorageBackend->fSyncIoPending, true); 450 Assert(!fOld); 449 451 DataSeg.cbSeg = cbWrite; 450 452 DataSeg.pvSeg = (void *)pvBuf; … … 477 479 LogFlowFunc(("pvUser=%#p pStorage=%#p\n", pvUser, pStorage)); 478 480 479 Assert(!pStorageBackend->fSyncIoPending);480 A SMAtomicXchgBool(&pStorageBackend->fSyncIoPending, true);481 bool fOld = ASMAtomicXchgBool(&pStorageBackend->fSyncIoPending, true); 482 Assert(!fOld); 481 483 482 484 int rc = PDMR3AsyncCompletionEpFlush(pStorageBackend->pEndpoint, NULL, &pTask); … … 505 507 PDRVVDSTORAGEBACKEND pStorageBackend = (PDRVVDSTORAGEBACKEND)pStorage; 506 508 507 int rc = PDMR3AsyncCompletionEpRead(pStorageBackend->pEndpoint, uOffset, paSegments, cSegments, cbRead,509 int rc = PDMR3AsyncCompletionEpRead(pStorageBackend->pEndpoint, uOffset, paSegments, (unsigned)cSegments, cbRead, 508 510 pvCompletion, (PPPDMASYNCCOMPLETIONTASK)ppTask); 509 511 if (rc == VINF_AIO_TASK_PENDING) … … 521 523 PDRVVDSTORAGEBACKEND pStorageBackend = (PDRVVDSTORAGEBACKEND)pStorage; 522 524 523 int rc = PDMR3AsyncCompletionEpWrite(pStorageBackend->pEndpoint, uOffset, paSegments, cSegments, cbWrite,525 int rc = PDMR3AsyncCompletionEpWrite(pStorageBackend->pEndpoint, uOffset, paSegments, (unsigned)cSegments, cbWrite, 524 526 pvCompletion, (PPPDMASYNCCOMPLETIONTASK)ppTask); 525 527 if (rc == VINF_AIO_TASK_PENDING) … … 1533 1535 1534 1536 if (RT_SUCCESS(rc)) 1535 Log2(("%s: off=%#llx pvBuf=%p cbRead=%d 1537 Log2(("%s: off=%#llx pvBuf=%p cbRead=%d\n%.*Rhxd\n", __FUNCTION__, 1536 1538 off, pvBuf, cbRead, cbRead, pvBuf)); 1537 1539 LogFlowFunc(("returns %Rrc\n", rc)); … … 1546 1548 LogFlowFunc(("off=%#llx pvBuf=%p cbWrite=%d\n", off, pvBuf, cbWrite)); 1547 1549 PVBOXDISK pThis = PDMIMEDIA_2_VBOXDISK(pInterface); 1548 Log2(("%s: off=%#llx pvBuf=%p cbWrite=%d 1550 Log2(("%s: off=%#llx pvBuf=%p cbWrite=%d\n%.*Rhxd\n", __FUNCTION__, 1549 1551 off, pvBuf, cbWrite, cbWrite, pvBuf)); 1550 1552
Note:
See TracChangeset
for help on using the changeset viewer.