VirtualBox

Changeset 27476 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Mar 18, 2010 11:13:17 AM (15 years ago)
Author:
vboxsync
Message:

VMDK: Use the I/O interface

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Storage/VmdkHDDCore.cpp

    r27232 r27476  
    579579    }
    580580    pVmdkFile->fOpen = fOpen;
     581
     582#ifndef VBOX_WITH_NEW_IO_CODE
    581583    if ((pImage->uOpenFlags & VD_OPEN_FLAGS_ASYNC_IO) && (fAsyncIO))
    582584    {
     
    596598        pVmdkFile->fAsyncIO = false;
    597599    }
     600#else
     601    rc = pImage->pInterfaceAsyncIOCallbacks->pfnOpen(pImage->pInterfaceAsyncIO->pvUser,
     602                                                        pszFilename,
     603                                                        pImage->uOpenFlags & VD_OPEN_FLAGS_READONLY
     604                                                        ? VD_INTERFACEASYNCIO_OPEN_FLAGS_READONLY
     605                                                        : 0,
     606                                                        NULL,
     607                                                        pImage->pVDIfsDisk,
     608                                                        &pVmdkFile->pStorage);
     609#endif
    598610    if (RT_SUCCESS(rc))
    599611    {
     
    645657            pImage->pFiles = pNext;
    646658
     659#ifndef VBOX_WITH_NEW_IO_CODE
    647660        if (pVmdkFile->fAsyncIO)
    648661        {
     
    654667            rc = RTFileClose(pVmdkFile->File);
    655668        }
     669#else
     670        rc = pImage->pInterfaceAsyncIOCallbacks->pfnClose(pImage->pInterfaceAsyncIO->pvUser,
     671                                                          pVmdkFile->pStorage);
     672#endif
    656673        if (RT_SUCCESS(rc) && pVmdkFile->fDelete)
    657674            rc = RTFileDelete(pVmdkFile->pszFilename);
     
    673690    PVMDKIMAGE pImage = pVmdkFile->pImage;
    674691
     692#ifndef VBOX_WITH_NEW_IO_CODE
    675693    if (pVmdkFile->fAsyncIO)
    676694        return pImage->pInterfaceAsyncIOCallbacks->pfnReadSync(pImage->pInterfaceAsyncIO->pvUser,
     
    679697    else
    680698        return RTFileReadAt(pVmdkFile->File, uOffset, pvBuf, cbToRead, pcbRead);
     699#else
     700    return pImage->pInterfaceAsyncIOCallbacks->pfnReadSync(pImage->pInterfaceAsyncIO->pvUser,
     701                                                               pVmdkFile->pStorage, uOffset,
     702                                                               cbToRead, pvBuf, pcbRead);
     703#endif
    681704}
    682705
     
    690713    PVMDKIMAGE pImage = pVmdkFile->pImage;
    691714
     715#ifndef VBOX_WITH_NEW_IO_CODE
    692716    if (pVmdkFile->fAsyncIO)
    693717        return pImage->pInterfaceAsyncIOCallbacks->pfnWriteSync(pImage->pInterfaceAsyncIO->pvUser,
     
    696720    else
    697721        return RTFileWriteAt(pVmdkFile->File, uOffset, pvBuf, cbToWrite, pcbWritten);
     722#else
     723        return pImage->pInterfaceAsyncIOCallbacks->pfnWriteSync(pImage->pInterfaceAsyncIO->pvUser,
     724                                                                pVmdkFile->pStorage, uOffset,
     725                                                                cbToWrite, pvBuf, pcbWritten);
     726#endif
    698727}
    699728
     
    705734    PVMDKIMAGE pImage = pVmdkFile->pImage;
    706735
     736#ifndef VBOX_WITH_NEW_IO_CODE
    707737    if (pVmdkFile->fAsyncIO)
    708738    {
     
    713743    else
    714744        return RTFileGetSize(pVmdkFile->File, pcbSize);
     745#else
     746    return pImage->pInterfaceAsyncIOCallbacks->pfnGetSize(pImage->pInterfaceAsyncIO->pvUser,
     747                                                            pVmdkFile->pStorage,
     748                                                            pcbSize);
     749#endif
    715750}
    716751
     
    722757    PVMDKIMAGE pImage = pVmdkFile->pImage;
    723758
     759#ifndef VBOX_WITH_NEW_IO_CODE
    724760    if (pVmdkFile->fAsyncIO)
    725761    {
     
    730766    else
    731767        return RTFileSetSize(pVmdkFile->File, cbSize);
     768#else
     769    return pImage->pInterfaceAsyncIOCallbacks->pfnSetSize(pImage->pInterfaceAsyncIO->pvUser,
     770                                                          pVmdkFile->pStorage,
     771                                                          cbSize);
     772#endif
    732773}
    733774
     
    739780    PVMDKIMAGE pImage = pVmdkFile->pImage;
    740781
     782#ifndef VBOX_WITH_NEW_IO_CODE
    741783    if (pVmdkFile->fAsyncIO)
    742784        return pImage->pInterfaceAsyncIOCallbacks->pfnFlushSync(pImage->pInterfaceAsyncIO->pvUser,
     
    744786    else
    745787        return RTFileFlush(pVmdkFile->File);
     788#else
     789    return pImage->pInterfaceAsyncIOCallbacks->pfnFlushSync(pImage->pInterfaceAsyncIO->pvUser,
     790                                                            pVmdkFile->pStorage);
     791#endif
    746792}
    747793
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette