Lines Matching refs:pBlock

414             PVDDISCARDBLOCK      pBlock;
1220 PVDDISCARDBLOCK pBlock = RTListGetLast(&pDiscard->ListLru, VDDISCARDBLOCK, NodeLru);
1225 uint64_t offStart = pBlock->Core.Key;
1227 size_t cbLeft = pBlock->cbDiscard;
1228 bool fAllocated = ASMBitTest(pBlock->pbmAllocated, idxStart);
1229 uint32_t cSectors = (uint32_t)(pBlock->cbDiscard / 512);
1239 idxEnd = ASMBitNextClear(pBlock->pbmAllocated, cSectors, idxStart);
1249 idxEnd = ASMBitNextSet(pBlock->pbmAllocated, cSectors, idxStart);
1275 PVDDISCARDBLOCK pBlockRemove = (PVDDISCARDBLOCK)RTAvlrU64RangeRemove(pDiscard->pTreeBlocks, pBlock->Core.Key);
1276 Assert(pBlockRemove == pBlock);
1277 RTListNodeRemove(&pBlock->NodeLru);
1279 pDiscard->cbDiscarding -= pBlock->cbDiscard;
1280 RTMemFree(pBlock->pbmAllocated);
1281 RTMemFree(pBlock);
1332 PVDDISCARDBLOCK pBlock = (PVDDISCARDBLOCK)RTAvlrU64RangeGet(pDiscard->pTreeBlocks, uOffset);
1334 if (pBlock)
1339 Assert(!((uOffset - pBlock->Core.Key) % 512));
1341 cbThisRange = RT_MIN(cbThisRange, pBlock->Core.KeyLast - uOffset + 1);
1343 idxStart = (uOffset - pBlock->Core.Key) / 512;
1345 ASMBitSetRange(pBlock->pbmAllocated, idxStart, idxEnd);
1349 pBlock = (PVDDISCARDBLOCK)RTAvlrU64GetBestFit(pDiscard->pTreeBlocks, uOffset, true);
1350 if (pBlock)
1351 cbThisRange = RT_MIN(cbThisRange, pBlock->Core.Key - uOffset);
3180 PVDDISCARDBLOCK pBlock = pIoCtx->Req.Discard.pBlock;
3185 AssertPtr(pBlock);
3188 pBlock->Core.Key, pBlock->cbDiscard,
3194 Assert(cbActuallyDiscarded == pBlock->cbDiscard || RT_FAILURE(rc));
3200 PVDDISCARDBLOCK pBlockRemove = (PVDDISCARDBLOCK)RTAvlrU64RangeRemove(pDiscard->pTreeBlocks, pBlock->Core.Key);
3201 Assert(pBlockRemove == pBlock);
3203 pDiscard->cbDiscarding -= pBlock->cbDiscard;
3204 RTListNodeRemove(&pBlock->NodeLru);
3205 RTMemFree(pBlock->pbmAllocated);
3206 RTMemFree(pBlock);
3207 pIoCtx->Req.Discard.pBlock = NULL;/* Safety precaution. */
3236 PVDDISCARDBLOCK pBlock = RTListGetLast(&pDiscard->ListLru, VDDISCARDBLOCK, NodeLru);
3241 uint64_t offStart = pBlock->Core.Key;
3243 size_t cbLeft = pBlock->cbDiscard;
3244 bool fAllocated = ASMBitTest(pBlock->pbmAllocated, idxStart);
3245 uint32_t cSectors = (uint32_t)(pBlock->cbDiscard / 512);
3255 idxEnd = ASMBitNextClear(pBlock->pbmAllocated, cSectors, idxStart);
3265 idxEnd = ASMBitNextSet(pBlock->pbmAllocated, cSectors, idxStart);
3288 PVDDISCARDBLOCK pBlockRemove = (PVDDISCARDBLOCK)RTAvlrU64RangeRemove(pDiscard->pTreeBlocks, pBlock->Core.Key);
3289 Assert(pBlockRemove == pBlock);
3290 RTListNodeRemove(&pBlock->NodeLru);
3292 pDiscard->cbDiscarding -= pBlock->cbDiscard;
3293 RTMemFree(pBlock->pbmAllocated);
3294 RTMemFree(pBlock);
3333 PVDDISCARDBLOCK pBlock = (PVDDISCARDBLOCK)RTMemAllocZ(sizeof(VDDISCARDBLOCK));
3334 if (pBlock)
3336 pBlock->Core.Key = offStart - cbPreAllocated;
3337 pBlock->Core.KeyLast = offStart + cbThisDiscard + cbPostAllocated - 1;
3338 pBlock->cbDiscard = cbPreAllocated + cbThisDiscard + cbPostAllocated;
3339 pBlock->pbmAllocated = pbmAllocated;
3340 bool fInserted = RTAvlrU64Insert(pDiscard->pTreeBlocks, &pBlock->Core);
3343 RTListPrepend(&pDiscard->ListLru, &pBlock->NodeLru);
3344 pDiscard->cbDiscarding += pBlock->cbDiscard;
3436 PVDDISCARDBLOCK pBlock = (PVDDISCARDBLOCK)RTAvlrU64GetBestFit(pDiscard->pTreeBlocks, offStart, false);
3437 if (!pBlock || pBlock->Core.KeyLast < offStart)
3448 pIoCtx->Req.Discard.pBlock = NULL;
3456 cbThisDiscard = RT_MIN(cbDiscardLeft, pBlock->Core.KeyLast - offStart + 1);
3458 AssertPtr(pBlock);
3461 Assert(!((offStart - pBlock->Core.Key) % 512));
3463 idxStart = (offStart - pBlock->Core.Key) / 512;
3466 ASMBitClearRange(pBlock->pbmAllocated, idxStart, idxEnd);
3472 if (ASMBitFirstSet((volatile void *)pBlock->pbmAllocated, (uint32_t)(pBlock->cbDiscard / 512)) == -1)
3474 pIoCtx->Req.Discard.pBlock = pBlock;
3480 RTListNodeRemove(&pBlock->NodeLru);
3481 RTListPrepend(&pDiscard->ListLru, &pBlock->NodeLru);