Lines Matching refs:pMemDisk

58     PVDMEMDISK pMemDisk = (PVDMEMDISK)RTMemAllocZ(sizeof(VDMEMDISK));
59 if (pMemDisk)
61 pMemDisk->fGrowable = cbSize ? false : true;
62 pMemDisk->cbDisk = cbSize;
63 pMemDisk->pTreeSegments = (PAVLRU64TREE)RTMemAllocZ(sizeof(AVLRU64TREE));
64 if (pMemDisk->pTreeSegments)
65 *ppMemDisk = pMemDisk;
68 RTMemFree(pMemDisk);
87 void VDMemDiskDestroy(PVDMEMDISK pMemDisk)
89 AssertPtrReturnVoid(pMemDisk);
91 RTAvlrU64Destroy(pMemDisk->pTreeSegments, vdMemDiskDestroy, NULL);
92 RTMemFree(pMemDisk->pTreeSegments);
93 RTMemFree(pMemDisk);
96 int VDMemDiskWrite(PVDMEMDISK pMemDisk, uint64_t off, size_t cbWrite, PRTSGBUF pSgBuf)
100 LogFlowFunc(("pMemDisk=%#p off=%llu cbWrite=%zu pSgBuf=%#p\n",
101 pMemDisk, off, cbWrite, pSgBuf));
103 AssertPtrReturn(pMemDisk, VERR_INVALID_POINTER);
107 if ( !pMemDisk->fGrowable
108 && (off + cbWrite) > pMemDisk->cbDisk)
118 PVDMEMDISKSEG pSeg = (PVDMEMDISKSEG)RTAvlrU64RangeGet(pMemDisk->pTreeSegments, offCurr);
125 pSeg = (PVDMEMDISKSEG)RTAvlrU64GetBestFit(pMemDisk->pTreeSegments, offCurr, true);
147 bool fInserted = RTAvlrU64Insert(pMemDisk->pTreeSegments, &pSeg->Core);
173 && pMemDisk->fGrowable
174 && (off + cbWrite) > pMemDisk->cbDisk)
176 pMemDisk->cbDisk = off + cbWrite;
183 int VDMemDiskRead(PVDMEMDISK pMemDisk, uint64_t off, size_t cbRead, PRTSGBUF pSgBuf)
185 LogFlowFunc(("pMemDisk=%#p off=%llu cbRead=%zu pSgBuf=%#p\n",
186 pMemDisk, off, cbRead, pSgBuf));
188 AssertPtrReturn(pMemDisk, VERR_INVALID_POINTER);
192 if ((off + cbRead) > pMemDisk->cbDisk)
201 PVDMEMDISKSEG pSeg = (PVDMEMDISKSEG)RTAvlrU64RangeGet(pMemDisk->pTreeSegments, offCurr);
208 pSeg = (PVDMEMDISKSEG)RTAvlrU64GetBestFit(pMemDisk->pTreeSegments, offCurr, true);
235 int VDMemDiskSetSize(PVDMEMDISK pMemDisk, uint64_t cbSize)
237 AssertPtrReturn(pMemDisk, VERR_INVALID_POINTER);
239 if (!pMemDisk->fGrowable)
242 if (pMemDisk->cbDisk <= cbSize)
245 pMemDisk->cbDisk = cbSize;
250 PVDMEMDISKSEG pSeg = (PVDMEMDISKSEG)RTAvlrU64Get(pMemDisk->pTreeSegments, cbSize);
253 RTAvlrU64Remove(pMemDisk->pTreeSegments, pSeg->Core.Key);
260 bool fInserted = RTAvlrU64Insert(pMemDisk->pTreeSegments, &pSeg->Core);
274 pSeg = (PVDMEMDISKSEG)RTAvlrU64GetBestFit(pMemDisk->pTreeSegments, cbSize, true);
277 RTAvlrU64Remove(pMemDisk->pTreeSegments, pSeg->Core.Key);
286 pMemDisk->cbDisk = cbSize;
292 int VDMemDiskGetSize(PVDMEMDISK pMemDisk, uint64_t *pcbSize)
294 AssertPtrReturn(pMemDisk, VERR_INVALID_POINTER);
297 *pcbSize = pMemDisk->cbDisk;
318 int VDMemDiskWriteToFile(PVDMEMDISK pMemDisk, const char *pcszFilename)
323 LogFlowFunc(("pMemDisk=%#p pcszFilename=%s\n", pMemDisk, pcszFilename));
324 AssertPtrReturn(pMemDisk, VERR_INVALID_POINTER);
330 rc = RTAvlrU64DoWithAll(pMemDisk->pTreeSegments, true, vdMemDiskSegmentWriteToFile, &hFile);
341 int VDMemDiskReadFromFile(PVDMEMDISK pMemDisk, const char *pcszFilename)
346 int VDMemDiskCmp(PVDMEMDISK pMemDisk, uint64_t off, size_t cbCmp, PRTSGBUF pSgBuf)
348 LogFlowFunc(("pMemDisk=%#p off=%llx cbCmp=%u pSgBuf=%#p\n",
349 pMemDisk, off, cbCmp, pSgBuf));
357 PVDMEMDISKSEG pSeg = (PVDMEMDISKSEG)RTAvlrU64Get(pMemDisk->pTreeSegments, offCurr);
365 pSeg = (PVDMEMDISKSEG)RTAvlrU64GetBestFit(pMemDisk->pTreeSegments, offCurr, true);