- Timestamp:
- Nov 16, 2010 10:56:43 AM (14 years ago)
- svn:sync-xref-src-repo-rev:
- 67800
- Location:
- trunk/src/VBox/Main
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/ApplianceImplExport.cpp
r33835 r34101 1590 1590 HRESULT rc = S_OK; 1591 1591 1592 PVDINTERFACEIO p RTSha1Callbacks = 0;1593 PVDINTERFACEIO p RTFileCallbacks = 0;1592 PVDINTERFACEIO pSha1Callbacks = 0; 1593 PVDINTERFACEIO pFileCallbacks = 0; 1594 1594 do 1595 1595 { 1596 p RTSha1Callbacks = RTSha1CreateInterface();1597 if (!p RTSha1Callbacks)1596 pSha1Callbacks = Sha1CreateInterface(); 1597 if (!pSha1Callbacks) 1598 1598 { 1599 1599 rc = E_OUTOFMEMORY; 1600 1600 break; 1601 1601 } 1602 p RTFileCallbacks = RTFileCreateInterface();1603 if (!p RTFileCallbacks)1602 pFileCallbacks = FileCreateInterface(); 1603 if (!pFileCallbacks) 1604 1604 { 1605 1605 rc = E_OUTOFMEMORY; … … 1607 1607 } 1608 1608 1609 RTSHA1STORAGE storage;1609 SHA1STORAGE storage; 1610 1610 RT_ZERO(storage); 1611 1611 storage.fCreateDigest = m->fManifest; 1612 1612 VDINTERFACE VDInterfaceIO; 1613 int vrc = VDInterfaceAdd(&VDInterfaceIO, "Appliance::IO RTFile",1614 VDINTERFACETYPE_IO, p RTFileCallbacks,1613 int vrc = VDInterfaceAdd(&VDInterfaceIO, "Appliance::IOFile", 1614 VDINTERFACETYPE_IO, pFileCallbacks, 1615 1615 0, &storage.pVDImageIfaces); 1616 1616 if (RT_FAILURE(vrc)) … … 1619 1619 break; 1620 1620 } 1621 rc = writeFSImpl(pTask, writeLock, p RTSha1Callbacks, &storage);1621 rc = writeFSImpl(pTask, writeLock, pSha1Callbacks, &storage); 1622 1622 }while(0); 1623 1623 1624 1624 /* Cleanup */ 1625 if (p RTSha1Callbacks)1626 RTMemFree(p RTSha1Callbacks);1627 if (p RTFileCallbacks)1628 RTMemFree(p RTFileCallbacks);1625 if (pSha1Callbacks) 1626 RTMemFree(pSha1Callbacks); 1627 if (pFileCallbacks) 1628 RTMemFree(pFileCallbacks); 1629 1629 1630 1630 LogFlowFuncLeave(); … … 1645 1645 HRESULT rc = S_OK; 1646 1646 1647 PVDINTERFACEIO p RTSha1Callbacks = 0;1648 PVDINTERFACEIO p RTTarCallbacks = 0;1647 PVDINTERFACEIO pSha1Callbacks = 0; 1648 PVDINTERFACEIO pTarCallbacks = 0; 1649 1649 do 1650 1650 { 1651 p RTSha1Callbacks = RTSha1CreateInterface();1652 if (!p RTSha1Callbacks)1651 pSha1Callbacks = Sha1CreateInterface(); 1652 if (!pSha1Callbacks) 1653 1653 { 1654 1654 rc = E_OUTOFMEMORY; 1655 1655 break; 1656 1656 } 1657 p RTTarCallbacks = RTTarCreateInterface();1658 if (!p RTTarCallbacks)1657 pTarCallbacks = TarCreateInterface(); 1658 if (!pTarCallbacks) 1659 1659 { 1660 1660 rc = E_OUTOFMEMORY; … … 1662 1662 } 1663 1663 VDINTERFACE VDInterfaceIO; 1664 RTSHA1STORAGE storage;1664 SHA1STORAGE storage; 1665 1665 RT_ZERO(storage); 1666 1666 storage.fCreateDigest = m->fManifest; 1667 vrc = VDInterfaceAdd(&VDInterfaceIO, "Appliance::IO RTTar",1668 VDINTERFACETYPE_IO, p RTTarCallbacks,1667 vrc = VDInterfaceAdd(&VDInterfaceIO, "Appliance::IOTar", 1668 VDINTERFACETYPE_IO, pTarCallbacks, 1669 1669 tar, &storage.pVDImageIfaces); 1670 1670 if (RT_FAILURE(vrc)) … … 1673 1673 break; 1674 1674 } 1675 rc = writeFSImpl(pTask, writeLock, p RTSha1Callbacks, &storage);1675 rc = writeFSImpl(pTask, writeLock, pSha1Callbacks, &storage); 1676 1676 }while(0); 1677 1677 … … 1679 1679 1680 1680 /* Cleanup */ 1681 if (p RTSha1Callbacks)1682 RTMemFree(p RTSha1Callbacks);1683 if (p RTTarCallbacks)1684 RTMemFree(p RTTarCallbacks);1681 if (pSha1Callbacks) 1682 RTMemFree(pSha1Callbacks); 1683 if (pTarCallbacks) 1684 RTMemFree(pTarCallbacks); 1685 1685 1686 1686 /* Delete ova file on error */ … … 1692 1692 } 1693 1693 1694 HRESULT Appliance::writeFSImpl(TaskOVF *pTask, AutoWriteLockBase& writeLock, PVDINTERFACEIO pCallbacks, P RTSHA1STORAGE pStorage)1694 HRESULT Appliance::writeFSImpl(TaskOVF *pTask, AutoWriteLockBase& writeLock, PVDINTERFACEIO pCallbacks, PSHA1STORAGE pStorage) 1695 1695 { 1696 1696 LogFlowFuncEnter(); … … 1724 1724 strOvfFile.c_str()); 1725 1725 /* Write the ovf file to disk. */ 1726 vrc = RTSha1WriteBuf(strOvfFile.c_str(), pvBuf, cbSize, pCallbacks, pStorage);1726 vrc = Sha1WriteBuf(strOvfFile.c_str(), pvBuf, cbSize, pCallbacks, pStorage); 1727 1727 if (RT_FAILURE(vrc)) 1728 1728 throw setError(VBOX_E_FILE_ERROR, … … 1841 1841 pStorage->fCreateDigest = false; 1842 1842 /* Write the manifest file to disk. */ 1843 vrc = RTSha1WriteBuf(strMfFilePath.c_str(), pvBuf, cbSize, pCallbacks, pStorage);1843 vrc = Sha1WriteBuf(strMfFilePath.c_str(), pvBuf, cbSize, pCallbacks, pStorage); 1844 1844 RTMemFree(pvBuf); 1845 1845 if (RT_FAILURE(vrc)) -
trunk/src/VBox/Main/ApplianceImplIO.cpp
r33706 r34101 37 37 ******************************************************************************/ 38 38 39 typedef struct RTFILESTORAGEINTERNAL39 typedef struct FILESTORAGEINTERNAL 40 40 { 41 41 /** File handle. */ … … 43 43 /** Completion callback. */ 44 44 PFNVDCOMPLETED pfnCompleted; 45 } RTFILESTORAGEINTERNAL, *PRTFILESTORAGEINTERNAL;46 47 typedef struct RTTARSTORAGEINTERNAL45 } FILESTORAGEINTERNAL, *PFILESTORAGEINTERNAL; 46 47 typedef struct TARSTORAGEINTERNAL 48 48 { 49 49 /** Tar handle. */ … … 51 51 /** Completion callback. */ 52 52 PFNVDCOMPLETED pfnCompleted; 53 } RTTARSTORAGEINTERNAL, *PRTTARSTORAGEINTERNAL;54 55 typedef struct RTSHA1STORAGEINTERNAL53 } TARSTORAGEINTERNAL, *PTARSTORAGEINTERNAL; 54 55 typedef struct SHA1STORAGEINTERNAL 56 56 { 57 57 /** Completion callback. */ … … 62 62 uint32_t fOpenMode; 63 63 /** Our own storage handle. */ 64 P RTSHA1STORAGE pSha1Storage;64 PSHA1STORAGE pSha1Storage; 65 65 /** Circular buffer used for transferring data from/to the worker thread. */ 66 66 PRTCIRCBUF pCircBuf; … … 87 87 // uint64_t calls; 88 88 // uint64_t waits; 89 } RTSHA1STORAGEINTERNAL, *PRTSHA1STORAGEINTERNAL;89 } SHA1STORAGEINTERNAL, *PSHA1STORAGEINTERNAL; 90 90 91 91 /****************************************************************************** … … 113 113 ******************************************************************************/ 114 114 115 static int rtFileOpenCallback(void * /* pvUser */, const char *pszLocation, uint32_t fOpen,115 static int fileOpenCallback(void * /* pvUser */, const char *pszLocation, uint32_t fOpen, 116 116 PFNVDCOMPLETED pfnCompleted, void **ppInt) 117 117 { … … 122 122 DEBUG_PRINT_FLOW(); 123 123 124 P RTFILESTORAGEINTERNAL pInt = (PRTFILESTORAGEINTERNAL)RTMemAllocZ(sizeof(RTFILESTORAGEINTERNAL));124 PFILESTORAGEINTERNAL pInt = (PFILESTORAGEINTERNAL)RTMemAllocZ(sizeof(FILESTORAGEINTERNAL)); 125 125 if (!pInt) 126 126 return VERR_NO_MEMORY; … … 138 138 } 139 139 140 static int rtFileCloseCallback(void * /* pvUser */, void *pvStorage)141 { 142 /* Validate input. */ 143 AssertPtrReturn(pvStorage, VERR_INVALID_POINTER); 144 145 P RTFILESTORAGEINTERNAL pInt = (PRTFILESTORAGEINTERNAL)pvStorage;140 static int fileCloseCallback(void * /* pvUser */, void *pvStorage) 141 { 142 /* Validate input. */ 143 AssertPtrReturn(pvStorage, VERR_INVALID_POINTER); 144 145 PFILESTORAGEINTERNAL pInt = (PFILESTORAGEINTERNAL)pvStorage; 146 146 147 147 DEBUG_PRINT_FLOW(); … … 155 155 } 156 156 157 static int rtFileDeleteCallback(void * /* pvUser */, const char *pcszFilename)157 static int fileDeleteCallback(void * /* pvUser */, const char *pcszFilename) 158 158 { 159 159 DEBUG_PRINT_FLOW(); … … 162 162 } 163 163 164 static int rtFileMoveCallback(void * /* pvUser */, const char *pcszSrc, const char *pcszDst, unsigned fMove)164 static int fileMoveCallback(void * /* pvUser */, const char *pcszSrc, const char *pcszDst, unsigned fMove) 165 165 { 166 166 DEBUG_PRINT_FLOW(); … … 169 169 } 170 170 171 static int rtFileGetFreeSpaceCallback(void * /* pvUser */, const char *pcszFilename, int64_t *pcbFreeSpace)171 static int fileGetFreeSpaceCallback(void * /* pvUser */, const char *pcszFilename, int64_t *pcbFreeSpace) 172 172 { 173 173 /* Validate input. */ … … 180 180 } 181 181 182 static int rtFileGetModificationTimeCallback(void * /* pvUser */, const char *pcszFilename, PRTTIMESPEC pModificationTime)182 static int fileGetModificationTimeCallback(void * /* pvUser */, const char *pcszFilename, PRTTIMESPEC pModificationTime) 183 183 { 184 184 /* Validate input. */ … … 191 191 } 192 192 193 static int rtFileGetSizeCallback(void * /* pvUser */, void *pvStorage, uint64_t *pcbSize)194 { 195 /* Validate input. */ 196 AssertPtrReturn(pvStorage, VERR_INVALID_POINTER); 197 198 P RTFILESTORAGEINTERNAL pInt = (PRTFILESTORAGEINTERNAL)pvStorage;193 static int fileGetSizeCallback(void * /* pvUser */, void *pvStorage, uint64_t *pcbSize) 194 { 195 /* Validate input. */ 196 AssertPtrReturn(pvStorage, VERR_INVALID_POINTER); 197 198 PFILESTORAGEINTERNAL pInt = (PFILESTORAGEINTERNAL)pvStorage; 199 199 200 200 DEBUG_PRINT_FLOW(); … … 203 203 } 204 204 205 static int rtFileSetSizeCallback(void * /* pvUser */, void *pvStorage, uint64_t cbSize)206 { 207 /* Validate input. */ 208 AssertPtrReturn(pvStorage, VERR_INVALID_POINTER); 209 210 P RTFILESTORAGEINTERNAL pInt = (PRTFILESTORAGEINTERNAL)pvStorage;205 static int fileSetSizeCallback(void * /* pvUser */, void *pvStorage, uint64_t cbSize) 206 { 207 /* Validate input. */ 208 AssertPtrReturn(pvStorage, VERR_INVALID_POINTER); 209 210 PFILESTORAGEINTERNAL pInt = (PFILESTORAGEINTERNAL)pvStorage; 211 211 212 212 DEBUG_PRINT_FLOW(); … … 215 215 } 216 216 217 static int rtFileWriteSyncCallback(void * /* pvUser */, void *pvStorage, uint64_t uOffset,217 static int fileWriteSyncCallback(void * /* pvUser */, void *pvStorage, uint64_t uOffset, 218 218 const void *pvBuf, size_t cbWrite, size_t *pcbWritten) 219 219 { … … 221 221 AssertPtrReturn(pvStorage, VERR_INVALID_POINTER); 222 222 223 P RTFILESTORAGEINTERNAL pInt = (PRTFILESTORAGEINTERNAL)pvStorage;223 PFILESTORAGEINTERNAL pInt = (PFILESTORAGEINTERNAL)pvStorage; 224 224 225 225 return RTFileWriteAt(pInt->file, uOffset, pvBuf, cbWrite, pcbWritten); 226 226 } 227 227 228 static int rtFileReadSyncCallback(void * /* pvUser */, void *pvStorage, uint64_t uOffset,228 static int fileReadSyncCallback(void * /* pvUser */, void *pvStorage, uint64_t uOffset, 229 229 void *pvBuf, size_t cbRead, size_t *pcbRead) 230 230 { … … 234 234 // DEBUG_PRINT_FLOW(); 235 235 236 P RTFILESTORAGEINTERNAL pInt = (PRTFILESTORAGEINTERNAL)pvStorage;236 PFILESTORAGEINTERNAL pInt = (PFILESTORAGEINTERNAL)pvStorage; 237 237 238 238 return RTFileReadAt(pInt->file, uOffset, pvBuf, cbRead, pcbRead); 239 239 } 240 240 241 static int rtFileFlushSyncCallback(void * /* pvUser */, void *pvStorage)242 { 243 /* Validate input. */ 244 AssertPtrReturn(pvStorage, VERR_INVALID_POINTER); 245 246 DEBUG_PRINT_FLOW(); 247 248 P RTFILESTORAGEINTERNAL pInt = (PRTFILESTORAGEINTERNAL)pvStorage;241 static int fileFlushSyncCallback(void * /* pvUser */, void *pvStorage) 242 { 243 /* Validate input. */ 244 AssertPtrReturn(pvStorage, VERR_INVALID_POINTER); 245 246 DEBUG_PRINT_FLOW(); 247 248 PFILESTORAGEINTERNAL pInt = (PFILESTORAGEINTERNAL)pvStorage; 249 249 250 250 return RTFileFlush(pInt->file); … … 255 255 ******************************************************************************/ 256 256 257 static int rtTarOpenCallback(void *pvUser, const char *pszLocation, uint32_t fOpen,257 static int tarOpenCallback(void *pvUser, const char *pszLocation, uint32_t fOpen, 258 258 PFNVDCOMPLETED pfnCompleted, void **ppInt) 259 259 { … … 268 268 DEBUG_PRINT_FLOW(); 269 269 270 P RTTARSTORAGEINTERNAL pInt = (PRTTARSTORAGEINTERNAL)RTMemAllocZ(sizeof(RTTARSTORAGEINTERNAL));270 PTARSTORAGEINTERNAL pInt = (PTARSTORAGEINTERNAL)RTMemAllocZ(sizeof(TARSTORAGEINTERNAL)); 271 271 if (!pInt) 272 272 return VERR_NO_MEMORY; … … 325 325 } 326 326 327 static int rtTarCloseCallback(void *pvUser, void *pvStorage)328 { 329 /* Validate input. */ 330 AssertPtrReturn(pvUser, VERR_INVALID_POINTER); 331 AssertPtrReturn(pvStorage, VERR_INVALID_POINTER); 332 333 P RTTARSTORAGEINTERNAL pInt = (PRTTARSTORAGEINTERNAL)pvStorage;327 static int tarCloseCallback(void *pvUser, void *pvStorage) 328 { 329 /* Validate input. */ 330 AssertPtrReturn(pvUser, VERR_INVALID_POINTER); 331 AssertPtrReturn(pvStorage, VERR_INVALID_POINTER); 332 333 PTARSTORAGEINTERNAL pInt = (PTARSTORAGEINTERNAL)pvStorage; 334 334 335 335 DEBUG_PRINT_FLOW(); … … 343 343 } 344 344 345 static int rtTarDeleteCallback(void *pvUser, const char *pcszFilename)345 static int tarDeleteCallback(void *pvUser, const char *pcszFilename) 346 346 { 347 347 /* Validate input. */ … … 354 354 } 355 355 356 static int rtTarMoveCallback(void *pvUser, const char *pcszSrc, const char *pcszDst, unsigned /* fMove */)356 static int tarMoveCallback(void *pvUser, const char *pcszSrc, const char *pcszDst, unsigned /* fMove */) 357 357 { 358 358 /* Validate input. */ … … 366 366 } 367 367 368 static int rtTarGetFreeSpaceCallback(void *pvUser, const char *pcszFilename, int64_t *pcbFreeSpace)368 static int tarGetFreeSpaceCallback(void *pvUser, const char *pcszFilename, int64_t *pcbFreeSpace) 369 369 { 370 370 /* Validate input. */ … … 378 378 } 379 379 380 static int rtTarGetModificationTimeCallback(void *pvUser, const char *pcszFilename, PRTTIMESPEC pModificationTime)380 static int tarGetModificationTimeCallback(void *pvUser, const char *pcszFilename, PRTTIMESPEC pModificationTime) 381 381 { 382 382 /* Validate input. */ … … 390 390 } 391 391 392 static int rtTarGetSizeCallback(void *pvUser, void *pvStorage, uint64_t *pcbSize)393 { 394 /* Validate input. */ 395 AssertPtrReturn(pvUser, VERR_INVALID_POINTER); 396 AssertPtrReturn(pvStorage, VERR_INVALID_POINTER); 397 398 P RTTARSTORAGEINTERNAL pInt = (PRTTARSTORAGEINTERNAL)pvStorage;392 static int tarGetSizeCallback(void *pvUser, void *pvStorage, uint64_t *pcbSize) 393 { 394 /* Validate input. */ 395 AssertPtrReturn(pvUser, VERR_INVALID_POINTER); 396 AssertPtrReturn(pvStorage, VERR_INVALID_POINTER); 397 398 PTARSTORAGEINTERNAL pInt = (PTARSTORAGEINTERNAL)pvStorage; 399 399 400 400 DEBUG_PRINT_FLOW(); … … 403 403 } 404 404 405 static int rtTarSetSizeCallback(void *pvUser, void *pvStorage, uint64_t cbSize)406 { 407 /* Validate input. */ 408 AssertPtrReturn(pvUser, VERR_INVALID_POINTER); 409 AssertPtrReturn(pvStorage, VERR_INVALID_POINTER); 410 411 P RTTARSTORAGEINTERNAL pInt = (PRTTARSTORAGEINTERNAL)pvStorage;405 static int tarSetSizeCallback(void *pvUser, void *pvStorage, uint64_t cbSize) 406 { 407 /* Validate input. */ 408 AssertPtrReturn(pvUser, VERR_INVALID_POINTER); 409 AssertPtrReturn(pvStorage, VERR_INVALID_POINTER); 410 411 PTARSTORAGEINTERNAL pInt = (PTARSTORAGEINTERNAL)pvStorage; 412 412 413 413 DEBUG_PRINT_FLOW(); … … 416 416 } 417 417 418 static int rtTarWriteSyncCallback(void *pvUser, void *pvStorage, uint64_t uOffset,418 static int tarWriteSyncCallback(void *pvUser, void *pvStorage, uint64_t uOffset, 419 419 const void *pvBuf, size_t cbWrite, size_t *pcbWritten) 420 420 { … … 423 423 AssertPtrReturn(pvStorage, VERR_INVALID_POINTER); 424 424 425 P RTTARSTORAGEINTERNAL pInt = (PRTTARSTORAGEINTERNAL)pvStorage;425 PTARSTORAGEINTERNAL pInt = (PTARSTORAGEINTERNAL)pvStorage; 426 426 427 427 DEBUG_PRINT_FLOW(); … … 430 430 } 431 431 432 static int rtTarReadSyncCallback(void *pvUser, void *pvStorage, uint64_t uOffset,432 static int tarReadSyncCallback(void *pvUser, void *pvStorage, uint64_t uOffset, 433 433 void *pvBuf, size_t cbRead, size_t *pcbRead) 434 434 { … … 437 437 AssertPtrReturn(pvStorage, VERR_INVALID_POINTER); 438 438 439 P RTTARSTORAGEINTERNAL pInt = (PRTTARSTORAGEINTERNAL)pvStorage;439 PTARSTORAGEINTERNAL pInt = (PTARSTORAGEINTERNAL)pvStorage; 440 440 441 441 // DEBUG_PRINT_FLOW(); … … 444 444 } 445 445 446 static int rtTarFlushSyncCallback(void *pvUser, void *pvStorage)446 static int tarFlushSyncCallback(void *pvUser, void *pvStorage) 447 447 { 448 448 /* Validate input. */ … … 459 459 ******************************************************************************/ 460 460 461 DECLCALLBACK(int) rtSha1CalcWorkerThread(RTTHREAD /* aThread */, void *pvUser)462 { 463 /* Validate input. */ 464 AssertPtrReturn(pvUser, VERR_INVALID_POINTER); 465 466 P RTSHA1STORAGEINTERNAL pInt = (PRTSHA1STORAGEINTERNAL)pvUser;461 DECLCALLBACK(int) sha1CalcWorkerThread(RTTHREAD /* aThread */, void *pvUser) 462 { 463 /* Validate input. */ 464 AssertPtrReturn(pvUser, VERR_INVALID_POINTER); 465 466 PSHA1STORAGEINTERNAL pInt = (PSHA1STORAGEINTERNAL)pvUser; 467 467 468 468 PVDINTERFACE pIO = VDInterfaceGet(pInt->pSha1Storage->pVDImageIfaces, VDINTERFACETYPE_IO); … … 609 609 } 610 610 611 DECLINLINE(int) rtSha1SignalManifestThread(PRTSHA1STORAGEINTERNAL pInt, uint32_t uStatus)611 DECLINLINE(int) sha1SignalManifestThread(PSHA1STORAGEINTERNAL pInt, uint32_t uStatus) 612 612 { 613 613 ASMAtomicWriteU32(&pInt->u32Status, uStatus); … … 615 615 } 616 616 617 DECLINLINE(int) rtSha1WaitForManifestThreadFinished(PRTSHA1STORAGEINTERNAL pInt)617 DECLINLINE(int) sha1WaitForManifestThreadFinished(PSHA1STORAGEINTERNAL pInt) 618 618 { 619 619 // RTPrintf("start\n"); … … 632 632 } 633 633 634 DECLINLINE(int) rtSha1FlushCurBuf(PRTSHA1STORAGEINTERNAL pInt)634 DECLINLINE(int) sha1FlushCurBuf(PSHA1STORAGEINTERNAL pInt) 635 635 { 636 636 int rc = VINF_SUCCESS; … … 638 638 { 639 639 /* Let the write worker thread start immediately. */ 640 rc = rtSha1SignalManifestThread(pInt, STATUS_WRITE);640 rc = sha1SignalManifestThread(pInt, STATUS_WRITE); 641 641 if (RT_FAILURE(rc)) 642 642 return rc; 643 643 644 644 /* Wait until the write worker thread has finished. */ 645 rc = rtSha1WaitForManifestThreadFinished(pInt);645 rc = sha1WaitForManifestThreadFinished(pInt); 646 646 } 647 647 … … 649 649 } 650 650 651 static int rtSha1OpenCallback(void *pvUser, const char *pszLocation, uint32_t fOpen,651 static int sha1OpenCallback(void *pvUser, const char *pszLocation, uint32_t fOpen, 652 652 PFNVDCOMPLETED pfnCompleted, void **ppInt) 653 653 { … … 659 659 AssertReturn((fOpen & RTFILE_O_READWRITE) != RTFILE_O_READWRITE, VERR_INVALID_PARAMETER); /* No read/write allowed */ 660 660 661 P RTSHA1STORAGE pSha1Storage = (PRTSHA1STORAGE)pvUser;661 PSHA1STORAGE pSha1Storage = (PSHA1STORAGE)pvUser; 662 662 PVDINTERFACE pIO = VDInterfaceGet(pSha1Storage->pVDImageIfaces, VDINTERFACETYPE_IO); 663 663 AssertPtrReturn(pIO, VERR_INVALID_PARAMETER); … … 667 667 DEBUG_PRINT_FLOW(); 668 668 669 P RTSHA1STORAGEINTERNAL pInt = (PRTSHA1STORAGEINTERNAL)RTMemAllocZ(sizeof(RTSHA1STORAGEINTERNAL));669 PSHA1STORAGEINTERNAL pInt = (PSHA1STORAGEINTERNAL)RTMemAllocZ(sizeof(SHA1STORAGEINTERNAL)); 670 670 if (!pInt) 671 671 return VERR_NO_MEMORY; … … 709 709 break; 710 710 /* Create the worker thread. */ 711 rc = RTThreadCreate(&pInt->pWorkerThread, rtSha1CalcWorkerThread, pInt, 0, RTTHREADTYPE_MAIN_HEAVY_WORKER, RTTHREADFLAGS_WAITABLE, "SHA1-Worker");711 rc = RTThreadCreate(&pInt->pWorkerThread, sha1CalcWorkerThread, pInt, 0, RTTHREADTYPE_MAIN_HEAVY_WORKER, RTTHREADFLAGS_WAITABLE, "SHA1-Worker"); 712 712 if (RT_FAILURE(rc)) 713 713 break; … … 727 727 { 728 728 /* Immediately let the worker thread start the reading. */ 729 rc = rtSha1SignalManifestThread(pInt, STATUS_READ);729 rc = sha1SignalManifestThread(pInt, STATUS_READ); 730 730 } 731 731 } … … 736 736 if (pInt->pWorkerThread) 737 737 { 738 rtSha1SignalManifestThread(pInt, STATUS_END);738 sha1SignalManifestThread(pInt, STATUS_END); 739 739 RTThreadWait(pInt->pWorkerThread, RT_INDEFINITE_WAIT, 0); 740 740 } … … 755 755 } 756 756 757 static int rtSha1CloseCallback(void *pvUser, void *pvStorage)758 { 759 /* Validate input. */ 760 AssertPtrReturn(pvUser, VERR_INVALID_POINTER); 761 AssertPtrReturn(pvStorage, VERR_INVALID_POINTER); 762 763 P RTSHA1STORAGE pSha1Storage = (PRTSHA1STORAGE)pvUser;757 static int sha1CloseCallback(void *pvUser, void *pvStorage) 758 { 759 /* Validate input. */ 760 AssertPtrReturn(pvUser, VERR_INVALID_POINTER); 761 AssertPtrReturn(pvStorage, VERR_INVALID_POINTER); 762 763 PSHA1STORAGE pSha1Storage = (PSHA1STORAGE)pvUser; 764 764 PVDINTERFACE pIO = VDInterfaceGet(pSha1Storage->pVDImageIfaces, VDINTERFACETYPE_IO); 765 765 AssertPtrReturn(pIO, VERR_INVALID_PARAMETER); … … 767 767 AssertPtrReturn(pCallbacks, VERR_INVALID_PARAMETER); 768 768 769 P RTSHA1STORAGEINTERNAL pInt = (PRTSHA1STORAGEINTERNAL)pvStorage;769 PSHA1STORAGEINTERNAL pInt = (PSHA1STORAGEINTERNAL)pvStorage; 770 770 771 771 DEBUG_PRINT_FLOW(); … … 774 774 775 775 /* Make sure all pending writes are flushed */ 776 rc = rtSha1FlushCurBuf(pInt);776 rc = sha1FlushCurBuf(pInt); 777 777 778 778 if (pInt->pWorkerThread) 779 779 { 780 780 /* Signal the worker thread to end himself */ 781 rc = rtSha1SignalManifestThread(pInt, STATUS_END);781 rc = sha1SignalManifestThread(pInt, STATUS_END); 782 782 /* Worker thread stopped? */ 783 783 rc = RTThreadWait(pInt->pWorkerThread, RT_INDEFINITE_WAIT, 0); … … 820 820 } 821 821 822 static int rtSha1DeleteCallback(void *pvUser, const char *pcszFilename)823 { 824 /* Validate input. */ 825 AssertPtrReturn(pvUser, VERR_INVALID_POINTER); 826 827 P RTSHA1STORAGE pSha1Storage = (PRTSHA1STORAGE)pvUser;822 static int sha1DeleteCallback(void *pvUser, const char *pcszFilename) 823 { 824 /* Validate input. */ 825 AssertPtrReturn(pvUser, VERR_INVALID_POINTER); 826 827 PSHA1STORAGE pSha1Storage = (PSHA1STORAGE)pvUser; 828 828 PVDINTERFACE pIO = VDInterfaceGet(pSha1Storage->pVDImageIfaces, VDINTERFACETYPE_IO); 829 829 AssertPtrReturn(pIO, VERR_INVALID_PARAMETER); … … 836 836 } 837 837 838 static int rtSha1MoveCallback(void *pvUser, const char *pcszSrc, const char *pcszDst, unsigned fMove)839 { 840 /* Validate input. */ 841 AssertPtrReturn(pvUser, VERR_INVALID_POINTER); 842 843 P RTSHA1STORAGE pSha1Storage = (PRTSHA1STORAGE)pvUser;838 static int sha1MoveCallback(void *pvUser, const char *pcszSrc, const char *pcszDst, unsigned fMove) 839 { 840 /* Validate input. */ 841 AssertPtrReturn(pvUser, VERR_INVALID_POINTER); 842 843 PSHA1STORAGE pSha1Storage = (PSHA1STORAGE)pvUser; 844 844 PVDINTERFACE pIO = VDInterfaceGet(pSha1Storage->pVDImageIfaces, VDINTERFACETYPE_IO); 845 845 AssertPtrReturn(pIO, VERR_INVALID_PARAMETER); … … 852 852 } 853 853 854 static int rtSha1GetFreeSpaceCallback(void *pvUser, const char *pcszFilename, int64_t *pcbFreeSpace)855 { 856 /* Validate input. */ 857 AssertPtrReturn(pvUser, VERR_INVALID_POINTER); 858 859 P RTSHA1STORAGE pSha1Storage = (PRTSHA1STORAGE)pvUser;854 static int sha1GetFreeSpaceCallback(void *pvUser, const char *pcszFilename, int64_t *pcbFreeSpace) 855 { 856 /* Validate input. */ 857 AssertPtrReturn(pvUser, VERR_INVALID_POINTER); 858 859 PSHA1STORAGE pSha1Storage = (PSHA1STORAGE)pvUser; 860 860 PVDINTERFACE pIO = VDInterfaceGet(pSha1Storage->pVDImageIfaces, VDINTERFACETYPE_IO); 861 861 AssertPtrReturn(pIO, VERR_INVALID_PARAMETER); … … 868 868 } 869 869 870 static int rtSha1GetModificationTimeCallback(void *pvUser, const char *pcszFilename, PRTTIMESPEC pModificationTime)871 { 872 /* Validate input. */ 873 AssertPtrReturn(pvUser, VERR_INVALID_POINTER); 874 875 P RTSHA1STORAGE pSha1Storage = (PRTSHA1STORAGE)pvUser;870 static int sha1GetModificationTimeCallback(void *pvUser, const char *pcszFilename, PRTTIMESPEC pModificationTime) 871 { 872 /* Validate input. */ 873 AssertPtrReturn(pvUser, VERR_INVALID_POINTER); 874 875 PSHA1STORAGE pSha1Storage = (PSHA1STORAGE)pvUser; 876 876 PVDINTERFACE pIO = VDInterfaceGet(pSha1Storage->pVDImageIfaces, VDINTERFACETYPE_IO); 877 877 AssertPtrReturn(pIO, VERR_INVALID_PARAMETER); … … 885 885 886 886 887 static int rtSha1GetSizeCallback(void *pvUser, void *pvStorage, uint64_t *pcbSize)888 { 889 /* Validate input. */ 890 AssertPtrReturn(pvUser, VERR_INVALID_POINTER); 891 AssertPtrReturn(pvStorage, VERR_INVALID_POINTER); 892 893 P RTSHA1STORAGE pSha1Storage = (PRTSHA1STORAGE)pvUser;887 static int sha1GetSizeCallback(void *pvUser, void *pvStorage, uint64_t *pcbSize) 888 { 889 /* Validate input. */ 890 AssertPtrReturn(pvUser, VERR_INVALID_POINTER); 891 AssertPtrReturn(pvStorage, VERR_INVALID_POINTER); 892 893 PSHA1STORAGE pSha1Storage = (PSHA1STORAGE)pvUser; 894 894 PVDINTERFACE pIO = VDInterfaceGet(pSha1Storage->pVDImageIfaces, VDINTERFACETYPE_IO); 895 895 AssertPtrReturn(pIO, VERR_INVALID_PARAMETER); … … 897 897 AssertPtrReturn(pCallbacks, VERR_INVALID_PARAMETER); 898 898 899 P RTSHA1STORAGEINTERNAL pInt = (PRTSHA1STORAGEINTERNAL)pvStorage;899 PSHA1STORAGEINTERNAL pInt = (PSHA1STORAGEINTERNAL)pvStorage; 900 900 901 901 DEBUG_PRINT_FLOW(); … … 911 911 } 912 912 913 static int rtSha1SetSizeCallback(void *pvUser, void *pvStorage, uint64_t cbSize)914 { 915 /* Validate input. */ 916 AssertPtrReturn(pvUser, VERR_INVALID_POINTER); 917 AssertPtrReturn(pvStorage, VERR_INVALID_POINTER); 918 919 P RTSHA1STORAGE pSha1Storage = (PRTSHA1STORAGE)pvUser;913 static int sha1SetSizeCallback(void *pvUser, void *pvStorage, uint64_t cbSize) 914 { 915 /* Validate input. */ 916 AssertPtrReturn(pvUser, VERR_INVALID_POINTER); 917 AssertPtrReturn(pvStorage, VERR_INVALID_POINTER); 918 919 PSHA1STORAGE pSha1Storage = (PSHA1STORAGE)pvUser; 920 920 PVDINTERFACE pIO = VDInterfaceGet(pSha1Storage->pVDImageIfaces, VDINTERFACETYPE_IO); 921 921 AssertPtrReturn(pIO, VERR_INVALID_PARAMETER); … … 923 923 AssertPtrReturn(pCallbacks, VERR_INVALID_PARAMETER); 924 924 925 P RTSHA1STORAGEINTERNAL pInt = (PRTSHA1STORAGEINTERNAL)pvStorage;925 PSHA1STORAGEINTERNAL pInt = (PSHA1STORAGEINTERNAL)pvStorage; 926 926 927 927 DEBUG_PRINT_FLOW(); … … 930 930 } 931 931 932 static int rtSha1WriteSyncCallback(void *pvUser, void *pvStorage, uint64_t uOffset,932 static int sha1WriteSyncCallback(void *pvUser, void *pvStorage, uint64_t uOffset, 933 933 const void *pvBuf, size_t cbWrite, size_t *pcbWritten) 934 934 { … … 937 937 AssertPtrReturn(pvStorage, VERR_INVALID_POINTER); 938 938 939 P RTSHA1STORAGE pSha1Storage = (PRTSHA1STORAGE)pvUser;939 PSHA1STORAGE pSha1Storage = (PSHA1STORAGE)pvUser; 940 940 PVDINTERFACE pIO = VDInterfaceGet(pSha1Storage->pVDImageIfaces, VDINTERFACETYPE_IO); 941 941 AssertPtrReturn(pIO, VERR_INVALID_PARAMETER); … … 943 943 AssertPtrReturn(pCallbacks, VERR_INVALID_PARAMETER); 944 944 945 P RTSHA1STORAGEINTERNAL pInt = (PRTSHA1STORAGEINTERNAL)pvStorage;945 PSHA1STORAGEINTERNAL pInt = (PSHA1STORAGEINTERNAL)pvStorage; 946 946 947 947 DEBUG_PRINT_FLOW(); … … 965 965 size_t cbToWrite = RT_MIN(pInt->cbZeroBuf, cbSize - cbAllWritten); 966 966 size_t cbWritten = 0; 967 rc = rtSha1WriteSyncCallback(pvUser, pvStorage, pInt->cbCurAll,967 rc = sha1WriteSyncCallback(pvUser, pvStorage, pInt->cbCurAll, 968 968 pInt->pvZeroBuf, cbToWrite, &cbWritten); 969 969 if (RT_FAILURE(rc)) … … 990 990 if ((cbWrite - cbAllWritten) > cbAvail) 991 991 { 992 rc = rtSha1SignalManifestThread(pInt, STATUS_WRITE);992 rc = sha1SignalManifestThread(pInt, STATUS_WRITE); 993 993 if(RT_FAILURE(rc)) 994 994 break; … … 996 996 if (cbAvail == 0) 997 997 { 998 rc = rtSha1WaitForManifestThreadFinished(pInt);998 rc = sha1WaitForManifestThreadFinished(pInt); 999 999 if (RT_FAILURE(rc)) 1000 1000 break; … … 1022 1022 if ( RT_SUCCESS(rc) 1023 1023 && RTCircBufUsed(pInt->pCircBuf) >= (RTCircBufSize(pInt->pCircBuf) / 2)) 1024 rc = rtSha1SignalManifestThread(pInt, STATUS_WRITE);1024 rc = sha1SignalManifestThread(pInt, STATUS_WRITE); 1025 1025 1026 1026 return rc; 1027 1027 } 1028 1028 1029 static int rtSha1ReadSyncCallback(void *pvUser, void *pvStorage, uint64_t uOffset,1029 static int sha1ReadSyncCallback(void *pvUser, void *pvStorage, uint64_t uOffset, 1030 1030 void *pvBuf, size_t cbRead, size_t *pcbRead) 1031 1031 { … … 1034 1034 AssertPtrReturn(pvStorage, VERR_INVALID_POINTER); 1035 1035 1036 P RTSHA1STORAGE pSha1Storage = (PRTSHA1STORAGE)pvUser;1036 PSHA1STORAGE pSha1Storage = (PSHA1STORAGE)pvUser; 1037 1037 PVDINTERFACE pIO = VDInterfaceGet(pSha1Storage->pVDImageIfaces, VDINTERFACETYPE_IO); 1038 1038 AssertPtrReturn(pIO, VERR_INVALID_PARAMETER); … … 1042 1042 // DEBUG_PRINT_FLOW(); 1043 1043 1044 P RTSHA1STORAGEINTERNAL pInt = (PRTSHA1STORAGEINTERNAL)pvStorage;1044 PSHA1STORAGEINTERNAL pInt = (PSHA1STORAGEINTERNAL)pvStorage; 1045 1045 1046 1046 int rc = VINF_SUCCESS; … … 1053 1053 if (pInt->cbCurAll < uOffset) 1054 1054 { 1055 rc = rtSha1ReadSyncCallback(pvUser, pvStorage, pInt->cbCurAll, 0,1055 rc = sha1ReadSyncCallback(pvUser, pvStorage, pInt->cbCurAll, 0, 1056 1056 (size_t)(uOffset - pInt->cbCurAll), 0); 1057 1057 if (RT_FAILURE(rc)) … … 1075 1075 if ((cbRead - cbAllRead) > cbAvail) 1076 1076 { 1077 rc = rtSha1SignalManifestThread(pInt, STATUS_READ);1077 rc = sha1SignalManifestThread(pInt, STATUS_READ); 1078 1078 if(RT_FAILURE(rc)) 1079 1079 break; … … 1081 1081 if (cbAvail == 0) 1082 1082 { 1083 rc = rtSha1WaitForManifestThreadFinished(pInt);1083 rc = sha1WaitForManifestThreadFinished(pInt); 1084 1084 if (RT_FAILURE(rc)) 1085 1085 break; … … 1112 1112 if ( RT_SUCCESS(rc) 1113 1113 && RTCircBufFree(pInt->pCircBuf) >= (RTCircBufSize(pInt->pCircBuf) / 2)) 1114 rc = rtSha1SignalManifestThread(pInt, STATUS_READ);1114 rc = sha1SignalManifestThread(pInt, STATUS_READ); 1115 1115 1116 1116 return rc; 1117 1117 } 1118 1118 1119 static int rtSha1FlushSyncCallback(void *pvUser, void *pvStorage)1120 { 1121 /* Validate input. */ 1122 AssertPtrReturn(pvUser, VERR_INVALID_POINTER); 1123 AssertPtrReturn(pvStorage, VERR_INVALID_POINTER); 1124 1125 P RTSHA1STORAGE pSha1Storage = (PRTSHA1STORAGE)pvUser;1119 static int sha1FlushSyncCallback(void *pvUser, void *pvStorage) 1120 { 1121 /* Validate input. */ 1122 AssertPtrReturn(pvUser, VERR_INVALID_POINTER); 1123 AssertPtrReturn(pvStorage, VERR_INVALID_POINTER); 1124 1125 PSHA1STORAGE pSha1Storage = (PSHA1STORAGE)pvUser; 1126 1126 PVDINTERFACE pIO = VDInterfaceGet(pSha1Storage->pVDImageIfaces, VDINTERFACETYPE_IO); 1127 1127 AssertPtrReturn(pIO, VERR_INVALID_PARAMETER); … … 1131 1131 DEBUG_PRINT_FLOW(); 1132 1132 1133 P RTSHA1STORAGEINTERNAL pInt = (PRTSHA1STORAGEINTERNAL)pvStorage;1133 PSHA1STORAGEINTERNAL pInt = (PSHA1STORAGEINTERNAL)pvStorage; 1134 1134 1135 1135 /* Check if there is still something in the buffer. If yes, flush it. */ 1136 int rc = rtSha1FlushCurBuf(pInt);1136 int rc = sha1FlushCurBuf(pInt); 1137 1137 if (RT_FAILURE(rc)) 1138 1138 return rc; … … 1145 1145 ******************************************************************************/ 1146 1146 1147 PVDINTERFACEIO RTSha1CreateInterface()1147 PVDINTERFACEIO Sha1CreateInterface() 1148 1148 { 1149 1149 PVDINTERFACEIO pCallbacks = (PVDINTERFACEIO)RTMemAllocZ(sizeof(VDINTERFACEIO)); … … 1153 1153 pCallbacks->cbSize = sizeof(VDINTERFACEIO); 1154 1154 pCallbacks->enmInterface = VDINTERFACETYPE_IO; 1155 pCallbacks->pfnOpen = rtSha1OpenCallback;1156 pCallbacks->pfnClose = rtSha1CloseCallback;1157 pCallbacks->pfnDelete = rtSha1DeleteCallback;1158 pCallbacks->pfnMove = rtSha1MoveCallback;1159 pCallbacks->pfnGetFreeSpace = rtSha1GetFreeSpaceCallback;1160 pCallbacks->pfnGetModificationTime = rtSha1GetModificationTimeCallback;1161 pCallbacks->pfnGetSize = rtSha1GetSizeCallback;1162 pCallbacks->pfnSetSize = rtSha1SetSizeCallback;1163 pCallbacks->pfnReadSync = rtSha1ReadSyncCallback;1164 pCallbacks->pfnWriteSync = rtSha1WriteSyncCallback;1165 pCallbacks->pfnFlushSync = rtSha1FlushSyncCallback;1155 pCallbacks->pfnOpen = sha1OpenCallback; 1156 pCallbacks->pfnClose = sha1CloseCallback; 1157 pCallbacks->pfnDelete = sha1DeleteCallback; 1158 pCallbacks->pfnMove = sha1MoveCallback; 1159 pCallbacks->pfnGetFreeSpace = sha1GetFreeSpaceCallback; 1160 pCallbacks->pfnGetModificationTime = sha1GetModificationTimeCallback; 1161 pCallbacks->pfnGetSize = sha1GetSizeCallback; 1162 pCallbacks->pfnSetSize = sha1SetSizeCallback; 1163 pCallbacks->pfnReadSync = sha1ReadSyncCallback; 1164 pCallbacks->pfnWriteSync = sha1WriteSyncCallback; 1165 pCallbacks->pfnFlushSync = sha1FlushSyncCallback; 1166 1166 1167 1167 return pCallbacks; 1168 1168 } 1169 1169 1170 PVDINTERFACEIO RTFileCreateInterface()1170 PVDINTERFACEIO FileCreateInterface() 1171 1171 { 1172 1172 PVDINTERFACEIO pCallbacks = (PVDINTERFACEIO)RTMemAllocZ(sizeof(VDINTERFACEIO)); … … 1176 1176 pCallbacks->cbSize = sizeof(VDINTERFACEIO); 1177 1177 pCallbacks->enmInterface = VDINTERFACETYPE_IO; 1178 pCallbacks->pfnOpen = rtFileOpenCallback;1179 pCallbacks->pfnClose = rtFileCloseCallback;1180 pCallbacks->pfnDelete = rtFileDeleteCallback;1181 pCallbacks->pfnMove = rtFileMoveCallback;1182 pCallbacks->pfnGetFreeSpace = rtFileGetFreeSpaceCallback;1183 pCallbacks->pfnGetModificationTime = rtFileGetModificationTimeCallback;1184 pCallbacks->pfnGetSize = rtFileGetSizeCallback;1185 pCallbacks->pfnSetSize = rtFileSetSizeCallback;1186 pCallbacks->pfnReadSync = rtFileReadSyncCallback;1187 pCallbacks->pfnWriteSync = rtFileWriteSyncCallback;1188 pCallbacks->pfnFlushSync = rtFileFlushSyncCallback;1178 pCallbacks->pfnOpen = fileOpenCallback; 1179 pCallbacks->pfnClose = fileCloseCallback; 1180 pCallbacks->pfnDelete = fileDeleteCallback; 1181 pCallbacks->pfnMove = fileMoveCallback; 1182 pCallbacks->pfnGetFreeSpace = fileGetFreeSpaceCallback; 1183 pCallbacks->pfnGetModificationTime = fileGetModificationTimeCallback; 1184 pCallbacks->pfnGetSize = fileGetSizeCallback; 1185 pCallbacks->pfnSetSize = fileSetSizeCallback; 1186 pCallbacks->pfnReadSync = fileReadSyncCallback; 1187 pCallbacks->pfnWriteSync = fileWriteSyncCallback; 1188 pCallbacks->pfnFlushSync = fileFlushSyncCallback; 1189 1189 1190 1190 return pCallbacks; 1191 1191 } 1192 1192 1193 PVDINTERFACEIO RTTarCreateInterface()1193 PVDINTERFACEIO TarCreateInterface() 1194 1194 { 1195 1195 PVDINTERFACEIO pCallbacks = (PVDINTERFACEIO)RTMemAllocZ(sizeof(VDINTERFACEIO)); … … 1199 1199 pCallbacks->cbSize = sizeof(VDINTERFACEIO); 1200 1200 pCallbacks->enmInterface = VDINTERFACETYPE_IO; 1201 pCallbacks->pfnOpen = rtTarOpenCallback;1202 pCallbacks->pfnClose = rtTarCloseCallback;1203 pCallbacks->pfnDelete = rtTarDeleteCallback;1204 pCallbacks->pfnMove = rtTarMoveCallback;1205 pCallbacks->pfnGetFreeSpace = rtTarGetFreeSpaceCallback;1206 pCallbacks->pfnGetModificationTime = rtTarGetModificationTimeCallback;1207 pCallbacks->pfnGetSize = rtTarGetSizeCallback;1208 pCallbacks->pfnSetSize = rtTarSetSizeCallback;1209 pCallbacks->pfnReadSync = rtTarReadSyncCallback;1210 pCallbacks->pfnWriteSync = rtTarWriteSyncCallback;1211 pCallbacks->pfnFlushSync = rtTarFlushSyncCallback;1201 pCallbacks->pfnOpen = tarOpenCallback; 1202 pCallbacks->pfnClose = tarCloseCallback; 1203 pCallbacks->pfnDelete = tarDeleteCallback; 1204 pCallbacks->pfnMove = tarMoveCallback; 1205 pCallbacks->pfnGetFreeSpace = tarGetFreeSpaceCallback; 1206 pCallbacks->pfnGetModificationTime = tarGetModificationTimeCallback; 1207 pCallbacks->pfnGetSize = tarGetSizeCallback; 1208 pCallbacks->pfnSetSize = tarSetSizeCallback; 1209 pCallbacks->pfnReadSync = tarReadSyncCallback; 1210 pCallbacks->pfnWriteSync = tarWriteSyncCallback; 1211 pCallbacks->pfnFlushSync = tarFlushSyncCallback; 1212 1212 1213 1213 return pCallbacks; 1214 1214 } 1215 1215 1216 int RTSha1ReadBuf(const char *pcszFilename, void **ppvBuf, size_t *pcbSize, PVDINTERFACEIO pCallbacks, void *pvUser)1216 int Sha1ReadBuf(const char *pcszFilename, void **ppvBuf, size_t *pcbSize, PVDINTERFACEIO pCallbacks, void *pvUser) 1217 1217 { 1218 1218 /* Validate input. */ … … 1280 1280 } 1281 1281 1282 int RTSha1WriteBuf(const char *pcszFilename, void *pvBuf, size_t cbSize, PVDINTERFACEIO pCallbacks, void *pvUser)1282 int Sha1WriteBuf(const char *pcszFilename, void *pvBuf, size_t cbSize, PVDINTERFACEIO pCallbacks, void *pvUser) 1283 1283 { 1284 1284 /* Validate input. */ -
trunk/src/VBox/Main/ApplianceImplImport.cpp
r33921 r34101 803 803 HRESULT rc = S_OK; 804 804 805 PVDINTERFACEIO p RTSha1Callbacks = 0;806 PVDINTERFACEIO p RTFileCallbacks = 0;805 PVDINTERFACEIO pSha1Callbacks = 0; 806 PVDINTERFACEIO pFileCallbacks = 0; 807 807 do 808 808 { 809 p RTSha1Callbacks = RTSha1CreateInterface();810 if (!p RTSha1Callbacks)809 pSha1Callbacks = Sha1CreateInterface(); 810 if (!pSha1Callbacks) 811 811 { 812 812 rc = E_OUTOFMEMORY; 813 813 break; 814 814 } 815 p RTFileCallbacks = RTFileCreateInterface();816 if (!p RTFileCallbacks)815 pFileCallbacks = FileCreateInterface(); 816 if (!pFileCallbacks) 817 817 { 818 818 rc = E_OUTOFMEMORY; … … 820 820 } 821 821 VDINTERFACE VDInterfaceIO; 822 RTSHA1STORAGE storage;822 SHA1STORAGE storage; 823 823 RT_ZERO(storage); 824 int vrc = VDInterfaceAdd(&VDInterfaceIO, "Appliance::IO RTFile",825 VDINTERFACETYPE_IO, p RTFileCallbacks,824 int vrc = VDInterfaceAdd(&VDInterfaceIO, "Appliance::IOFile", 825 VDINTERFACETYPE_IO, pFileCallbacks, 826 826 0, &storage.pVDImageIfaces); 827 827 if (RT_FAILURE(vrc)) … … 830 830 break; 831 831 } 832 rc = readFSImpl(pTask, p RTSha1Callbacks, &storage);832 rc = readFSImpl(pTask, pSha1Callbacks, &storage); 833 833 }while(0); 834 834 835 835 /* Cleanup */ 836 if (p RTSha1Callbacks)837 RTMemFree(p RTSha1Callbacks);838 if (p RTFileCallbacks)839 RTMemFree(p RTFileCallbacks);836 if (pSha1Callbacks) 837 RTMemFree(pSha1Callbacks); 838 if (pFileCallbacks) 839 RTMemFree(pFileCallbacks); 840 840 841 841 LogFlowFunc(("rc=%Rhrc\n", rc)); … … 858 858 HRESULT rc = S_OK; 859 859 860 PVDINTERFACEIO p RTSha1Callbacks = 0;861 PVDINTERFACEIO p RTTarCallbacks = 0;860 PVDINTERFACEIO pSha1Callbacks = 0; 861 PVDINTERFACEIO pTarCallbacks = 0; 862 862 do 863 863 { 864 p RTSha1Callbacks = RTSha1CreateInterface();865 if (!p RTSha1Callbacks)864 pSha1Callbacks = Sha1CreateInterface(); 865 if (!pSha1Callbacks) 866 866 { 867 867 rc = E_OUTOFMEMORY; 868 868 break; 869 869 } 870 p RTTarCallbacks = RTTarCreateInterface();871 if (!p RTTarCallbacks)870 pTarCallbacks = TarCreateInterface(); 871 if (!pTarCallbacks) 872 872 { 873 873 rc = E_OUTOFMEMORY; … … 875 875 } 876 876 VDINTERFACE VDInterfaceIO; 877 RTSHA1STORAGE storage;877 SHA1STORAGE storage; 878 878 RT_ZERO(storage); 879 vrc = VDInterfaceAdd(&VDInterfaceIO, "Appliance::IO RTTar",880 VDINTERFACETYPE_IO, p RTTarCallbacks,879 vrc = VDInterfaceAdd(&VDInterfaceIO, "Appliance::IOTar", 880 VDINTERFACETYPE_IO, pTarCallbacks, 881 881 tar, &storage.pVDImageIfaces); 882 882 if (RT_FAILURE(vrc)) … … 885 885 break; 886 886 } 887 rc = readFSImpl(pTask, p RTSha1Callbacks, &storage);887 rc = readFSImpl(pTask, pSha1Callbacks, &storage); 888 888 }while(0); 889 889 … … 891 891 892 892 /* Cleanup */ 893 if (p RTSha1Callbacks)894 RTMemFree(p RTSha1Callbacks);895 if (p RTTarCallbacks)896 RTMemFree(p RTTarCallbacks);893 if (pSha1Callbacks) 894 RTMemFree(pSha1Callbacks); 895 if (pTarCallbacks) 896 RTMemFree(pTarCallbacks); 897 897 898 898 LogFlowFunc(("rc=%Rhrc\n", rc)); … … 902 902 } 903 903 904 HRESULT Appliance::readFSImpl(TaskOVF *pTask, PVDINTERFACEIO pCallbacks, P RTSHA1STORAGE pStorage)904 HRESULT Appliance::readFSImpl(TaskOVF *pTask, PVDINTERFACEIO pCallbacks, PSHA1STORAGE pStorage) 905 905 { 906 906 LogFlowFuncEnter(); … … 916 916 /* Read the OVF into a memory buffer */ 917 917 size_t cbSize = 0; 918 int vrc = RTSha1ReadBuf(strOvfFile.c_str(), &pvTmpBuf, &cbSize, pCallbacks, pStorage);918 int vrc = Sha1ReadBuf(strOvfFile.c_str(), &pvTmpBuf, &cbSize, pCallbacks, pStorage); 919 919 if ( RT_FAILURE(vrc) 920 920 || !pvTmpBuf) … … 1209 1209 HRESULT rc = S_OK; 1210 1210 1211 PVDINTERFACEIO p RTSha1Callbacks = 0;1212 PVDINTERFACEIO p RTFileCallbacks = 0;1211 PVDINTERFACEIO pSha1Callbacks = 0; 1212 PVDINTERFACEIO pFileCallbacks = 0; 1213 1213 void *pvMfBuf = 0; 1214 1214 writeLock.release(); … … 1216 1216 { 1217 1217 /* Create the necessary file access interfaces. */ 1218 p RTSha1Callbacks = RTSha1CreateInterface();1219 if (!p RTSha1Callbacks)1218 pSha1Callbacks = Sha1CreateInterface(); 1219 if (!pSha1Callbacks) 1220 1220 throw E_OUTOFMEMORY; 1221 p RTFileCallbacks = RTFileCreateInterface();1222 if (!p RTFileCallbacks)1221 pFileCallbacks = FileCreateInterface(); 1222 if (!pFileCallbacks) 1223 1223 throw E_OUTOFMEMORY; 1224 1224 1225 1225 VDINTERFACE VDInterfaceIO; 1226 RTSHA1STORAGE storage;1226 SHA1STORAGE storage; 1227 1227 RT_ZERO(storage); 1228 1228 storage.fCreateDigest = true; 1229 int vrc = VDInterfaceAdd(&VDInterfaceIO, "Appliance::IO RTFile",1230 VDINTERFACETYPE_IO, p RTFileCallbacks,1229 int vrc = VDInterfaceAdd(&VDInterfaceIO, "Appliance::IOFile", 1230 VDINTERFACETYPE_IO, pFileCallbacks, 1231 1231 0, &storage.pVDImageIfaces); 1232 1232 if (RT_FAILURE(vrc)) … … 1240 1240 storage.fCreateDigest = RTFileExists(strMfFile.c_str()); 1241 1241 /* Now import the appliance. */ 1242 importMachines(stack, p RTSha1Callbacks, &storage);1242 importMachines(stack, pSha1Callbacks, &storage); 1243 1243 /* Read & verify the manifest file, if there is one. */ 1244 1244 if (storage.fCreateDigest) … … 1246 1246 /* Add the ovf file to the digest list. */ 1247 1247 stack.llSrcDisksDigest.push_front(STRPAIR(pTask->locInfo.strPath, m->strOVFSHA1Digest)); 1248 rc = readManifestFile(strMfFile, &pvMfBuf, &cbMfSize, p RTSha1Callbacks, &storage);1248 rc = readManifestFile(strMfFile, &pvMfBuf, &cbMfSize, pSha1Callbacks, &storage); 1249 1249 if (FAILED(rc)) throw rc; 1250 1250 rc = verifyManifestFile(strMfFile, stack, pvMfBuf, cbMfSize); … … 1261 1261 if (pvMfBuf) 1262 1262 RTMemFree(pvMfBuf); 1263 if (p RTSha1Callbacks)1264 RTMemFree(p RTSha1Callbacks);1265 if (p RTFileCallbacks)1266 RTMemFree(p RTFileCallbacks);1263 if (pSha1Callbacks) 1264 RTMemFree(pSha1Callbacks); 1265 if (pFileCallbacks) 1266 RTMemFree(pFileCallbacks); 1267 1267 1268 1268 LogFlowFunc(("rc=%Rhrc\n", rc)); … … 1285 1285 HRESULT rc = S_OK; 1286 1286 1287 PVDINTERFACEIO p RTSha1Callbacks = 0;1288 PVDINTERFACEIO p RTTarCallbacks = 0;1287 PVDINTERFACEIO pSha1Callbacks = 0; 1288 PVDINTERFACEIO pTarCallbacks = 0; 1289 1289 void *pvMfBuf = 0; 1290 1290 writeLock.release(); … … 1292 1292 { 1293 1293 /* Create the necessary file access interfaces. */ 1294 p RTSha1Callbacks = RTSha1CreateInterface();1295 if (!p RTSha1Callbacks)1294 pSha1Callbacks = Sha1CreateInterface(); 1295 if (!pSha1Callbacks) 1296 1296 throw E_OUTOFMEMORY; 1297 p RTTarCallbacks = RTTarCreateInterface();1298 if (!p RTTarCallbacks)1297 pTarCallbacks = TarCreateInterface(); 1298 if (!pTarCallbacks) 1299 1299 throw E_OUTOFMEMORY; 1300 1300 1301 1301 VDINTERFACE VDInterfaceIO; 1302 RTSHA1STORAGE storage;1302 SHA1STORAGE storage; 1303 1303 RT_ZERO(storage); 1304 vrc = VDInterfaceAdd(&VDInterfaceIO, "Appliance::IO RTTar",1305 VDINTERFACETYPE_IO, p RTTarCallbacks,1304 vrc = VDInterfaceAdd(&VDInterfaceIO, "Appliance::IOTar", 1305 VDINTERFACETYPE_IO, pTarCallbacks, 1306 1306 tar, &storage.pVDImageIfaces); 1307 1307 if (RT_FAILURE(vrc)) … … 1316 1316 tr("Internal error (%Rrc)"), vrc); 1317 1317 1318 PVDINTERFACEIO pCallbacks = p RTSha1Callbacks;1319 P RTSHA1STORAGE pStorage = &storage;1318 PVDINTERFACEIO pCallbacks = pSha1Callbacks; 1319 PSHA1STORAGE pStorage = &storage; 1320 1320 1321 1321 /* We always need to create the digest, cause we didn't know if there … … 1369 1369 if (pvMfBuf) 1370 1370 RTMemFree(pvMfBuf); 1371 if (p RTSha1Callbacks)1372 RTMemFree(p RTSha1Callbacks);1373 if (p RTTarCallbacks)1374 RTMemFree(p RTTarCallbacks);1371 if (pSha1Callbacks) 1372 RTMemFree(pSha1Callbacks); 1373 if (pTarCallbacks) 1374 RTMemFree(pTarCallbacks); 1375 1375 1376 1376 LogFlowFunc(("rc=%Rhrc\n", rc)); … … 1571 1571 } 1572 1572 1573 HRESULT Appliance::readManifestFile(const Utf8Str &strFile, void **ppvBuf, size_t *pcbSize, PVDINTERFACEIO pCallbacks, P RTSHA1STORAGE pStorage)1573 HRESULT Appliance::readManifestFile(const Utf8Str &strFile, void **ppvBuf, size_t *pcbSize, PVDINTERFACEIO pCallbacks, PSHA1STORAGE pStorage) 1574 1574 { 1575 1575 HRESULT rc = S_OK; … … 1577 1577 bool fOldDigest = pStorage->fCreateDigest; 1578 1578 pStorage->fCreateDigest = false; /* No digest for the manifest file */ 1579 int vrc = RTSha1ReadBuf(strFile.c_str(), ppvBuf, pcbSize, pCallbacks, pStorage);1579 int vrc = Sha1ReadBuf(strFile.c_str(), ppvBuf, pcbSize, pCallbacks, pStorage); 1580 1580 if ( RT_FAILURE(vrc) 1581 1581 && vrc != VERR_FILE_NOT_FOUND) … … 1588 1588 } 1589 1589 1590 HRESULT Appliance::readTarManifestFile(RTTAR tar, const Utf8Str &strFile, void **ppvBuf, size_t *pcbSize, PVDINTERFACEIO pCallbacks, P RTSHA1STORAGE pStorage)1590 HRESULT Appliance::readTarManifestFile(RTTAR tar, const Utf8Str &strFile, void **ppvBuf, size_t *pcbSize, PVDINTERFACEIO pCallbacks, PSHA1STORAGE pStorage) 1591 1591 { 1592 1592 HRESULT rc = S_OK; … … 1762 1762 ImportStack &stack, 1763 1763 PVDINTERFACEIO pCallbacks, 1764 P RTSHA1STORAGE pStorage)1764 PSHA1STORAGE pStorage) 1765 1765 { 1766 1766 ComObjPtr<Progress> pProgress; … … 1901 1901 ImportStack &stack, 1902 1902 PVDINTERFACEIO pCallbacks, 1903 P RTSHA1STORAGE pStorage)1903 PSHA1STORAGE pStorage) 1904 1904 { 1905 1905 HRESULT rc; … … 2467 2467 ImportStack &stack, 2468 2468 PVDINTERFACEIO pCallbacks, 2469 P RTSHA1STORAGE pStorage)2469 PSHA1STORAGE pStorage) 2470 2470 { 2471 2471 Assert(vsdescThis->m->pConfig); … … 2724 2724 void Appliance::importMachines(ImportStack &stack, 2725 2725 PVDINTERFACEIO pCallbacks, 2726 P RTSHA1STORAGE pStorage)2726 PSHA1STORAGE pStorage) 2727 2727 { 2728 2728 HRESULT rc = S_OK; -
trunk/src/VBox/Main/include/ApplianceImpl.h
r33651 r34101 35 35 typedef struct VDINTERFACE *PVDINTERFACE; 36 36 typedef struct VDINTERFACEIO *PVDINTERFACEIO; 37 typedef struct RTSHA1STORAGE *PRTSHA1STORAGE;37 typedef struct SHA1STORAGE *PSHA1STORAGE; 38 38 39 39 namespace ovf … … 152 152 HRESULT readFSOVF(TaskOVF *pTask); 153 153 HRESULT readFSOVA(TaskOVF *pTask); 154 HRESULT readFSImpl(TaskOVF *pTask, PVDINTERFACEIO pCallbacks, P RTSHA1STORAGE pStorage);154 HRESULT readFSImpl(TaskOVF *pTask, PVDINTERFACEIO pCallbacks, PSHA1STORAGE pStorage); 155 155 HRESULT readS3(TaskOVF *pTask); 156 156 … … 166 166 HRESULT importS3(TaskOVF *pTask); 167 167 168 HRESULT readManifestFile(const Utf8Str &strFile, void **ppvBuf, size_t *pcbSize, PVDINTERFACEIO pCallbacks, P RTSHA1STORAGE pStorage);169 HRESULT readTarManifestFile(RTTAR tar, const Utf8Str &strFile, void **ppvBuf, size_t *pcbSize, PVDINTERFACEIO pCallbacks, P RTSHA1STORAGE pStorage);168 HRESULT readManifestFile(const Utf8Str &strFile, void **ppvBuf, size_t *pcbSize, PVDINTERFACEIO pCallbacks, PSHA1STORAGE pStorage); 169 HRESULT readTarManifestFile(RTTAR tar, const Utf8Str &strFile, void **ppvBuf, size_t *pcbSize, PVDINTERFACEIO pCallbacks, PSHA1STORAGE pStorage); 170 170 HRESULT verifyManifestFile(const Utf8Str &strFile, ImportStack &stack, void *pvBuf, size_t cbSize); 171 171 … … 181 181 ImportStack &stack, 182 182 PVDINTERFACEIO pCallbacks, 183 P RTSHA1STORAGE pStorage);183 PSHA1STORAGE pStorage); 184 184 void importMachineGeneric(const ovf::VirtualSystem &vsysThis, 185 185 ComObjPtr<VirtualSystemDescription> &vsdescThis, … … 187 187 ImportStack &stack, 188 188 PVDINTERFACEIO pCallbacks, 189 P RTSHA1STORAGE pStorage);189 PSHA1STORAGE pStorage); 190 190 void importVBoxMachine(ComObjPtr<VirtualSystemDescription> &vsdescThis, 191 191 ComPtr<IMachine> &pNewMachine, 192 192 ImportStack &stack, 193 193 PVDINTERFACEIO pCallbacks, 194 P RTSHA1STORAGE pStorage);194 PSHA1STORAGE pStorage); 195 195 void importMachines(ImportStack &stack, 196 196 PVDINTERFACEIO pCallbacks, 197 P RTSHA1STORAGE pStorage);197 PSHA1STORAGE pStorage); 198 198 199 199 /******************************************************************************* … … 206 206 HRESULT writeFSOVF(TaskOVF *pTask, AutoWriteLockBase& writeLock); 207 207 HRESULT writeFSOVA(TaskOVF *pTask, AutoWriteLockBase& writeLock); 208 HRESULT writeFSImpl(TaskOVF *pTask, AutoWriteLockBase& writeLock, PVDINTERFACEIO pCallbacks, P RTSHA1STORAGE pStorage);208 HRESULT writeFSImpl(TaskOVF *pTask, AutoWriteLockBase& writeLock, PVDINTERFACEIO pCallbacks, PSHA1STORAGE pStorage); 209 209 HRESULT writeS3(TaskOVF *pTask); 210 210 -
trunk/src/VBox/Main/include/ApplianceImplPrivate.h
r34093 r34101 223 223 Utf8Str convertNetworkAttachmentTypeToString(NetworkAttachmentType_T type); 224 224 225 typedef struct RTSHA1STORAGE225 typedef struct SHA1STORAGE 226 226 { 227 227 PVDINTERFACE pVDImageIfaces; 228 228 bool fCreateDigest; 229 229 Utf8Str strDigest; 230 } RTSHA1STORAGE, *PRTSHA1STORAGE; 231 232 /** @todo r=bird: RT is a prefix reserved for IPRT, using it outside will only 233 * cause confusion. Please find a different prefix unless the plan is to move 234 * this code into IPRT. (I can find no @todo in the code hinting at this.) */ 235 PVDINTERFACEIO RTSha1CreateInterface(); 236 PVDINTERFACEIO RTFileCreateInterface(); 237 PVDINTERFACEIO RTTarCreateInterface(); 238 int RTSha1ReadBuf(const char *pcszFilename, void **ppvBuf, size_t *pcbSize, PVDINTERFACEIO pCallbacks, void *pvUser); 239 int RTSha1WriteBuf(const char *pcszFilename, void *pvBuf, size_t cbSize, PVDINTERFACEIO pCallbacks, void *pvUser); 230 } SHA1STORAGE, *PSHA1STORAGE; 231 232 PVDINTERFACEIO Sha1CreateInterface(); 233 PVDINTERFACEIO FileCreateInterface(); 234 PVDINTERFACEIO TarCreateInterface(); 235 int Sha1ReadBuf(const char *pcszFilename, void **ppvBuf, size_t *pcbSize, PVDINTERFACEIO pCallbacks, void *pvUser); 236 int Sha1WriteBuf(const char *pcszFilename, void *pvBuf, size_t cbSize, PVDINTERFACEIO pCallbacks, void *pvUser); 240 237 241 238 #endif // ____H_APPLIANCEIMPLPRIVATE
Note:
See TracChangeset
for help on using the changeset viewer.