Lines Matching refs:pBwMgr

587     PPDMACBWMGR pBwMgr = NULL;
593 pBwMgr = pEpClass->pBwMgrsHead;
594 while ( pBwMgr
595 && RTStrCmp(pBwMgr->pszId, pszId))
596 pBwMgr = pBwMgr->pNext;
601 return pBwMgr;
606 static void pdmacBwMgrLink(PPDMACBWMGR pBwMgr)
608 PPDMASYNCCOMPLETIONEPCLASS pEpClass = pBwMgr->pEpClass;
611 pBwMgr->pNext = pEpClass->pBwMgrsHead;
612 pEpClass->pBwMgrsHead = pBwMgr;
620 static void pdmacBwMgrUnlink(PPDMACBWMGR pBwMgr)
622 PPDMASYNCCOMPLETIONEPCLASS pEpClass = pBwMgr->pEpClass;
625 if (pBwMgr == pEpClass->pBwMgrsHead)
626 pEpClass->pBwMgrsHead = pBwMgr->pNext;
631 && pPrev->pNext != pBwMgr)
635 pPrev->pNext = pBwMgr->pNext;
655 PPDMACBWMGR pBwMgr = pdmacBwMgrFindById(pEpClass, pszBwMgr);
656 if (!pBwMgr)
660 (void **)&pBwMgr);
663 pBwMgr->pszId = RTStrDup(pszBwMgr);
664 if (pBwMgr->pszId)
666 pBwMgr->pEpClass = pEpClass;
667 pBwMgr->cRefs = 0;
670 pBwMgr->cbTransferPerSecMax = cbTransferPerSecMax;
671 pBwMgr->cbTransferPerSecStart = cbTransferPerSecStart;
672 pBwMgr->cbTransferPerSecStep = cbTransferPerSecStep;
674 pBwMgr->cbTransferAllowed = pBwMgr->cbTransferPerSecStart;
675 pBwMgr->tsUpdatedLast = RTTimeSystemNanoTS();
677 pdmacBwMgrLink(pBwMgr);
683 MMR3HeapFree(pBwMgr);
696 DECLINLINE(void) pdmacBwMgrRetain(PPDMACBWMGR pBwMgr)
698 ASMAtomicIncU32(&pBwMgr->cRefs);
703 DECLINLINE(void) pdmacBwMgrRelease(PPDMACBWMGR pBwMgr)
705 Assert(pBwMgr->cRefs > 0);
706 ASMAtomicDecU32(&pBwMgr->cRefs);
724 PPDMACBWMGR pBwMgr = ASMAtomicReadPtrT(&pEndpoint->pBwMgr, PPDMACBWMGR);
726 LogFlowFunc(("pEndpoint=%p pBwMgr=%p cbTransfer=%u\n", pEndpoint, pBwMgr, cbTransfer));
728 if (pBwMgr)
730 uint32_t cbOld = ASMAtomicSubU32(&pBwMgr->cbTransferAllowed, cbTransfer);
739 uint64_t tsUpdatedLast = ASMAtomicUoReadU64(&pBwMgr->tsUpdatedLast);
743 if (ASMAtomicCmpXchgU64(&pBwMgr->tsUpdatedLast, tsNow, tsUpdatedLast))
745 if (pBwMgr->cbTransferPerSecStart < pBwMgr->cbTransferPerSecMax)
747 pBwMgr->cbTransferPerSecStart = RT_MIN(pBwMgr->cbTransferPerSecMax, pBwMgr->cbTransferPerSecStart + pBwMgr->cbTransferPerSecStep);
748 LogFlow(("AIOMgr: Increasing maximum bandwidth to %u bytes/sec\n", pBwMgr->cbTransferPerSecStart));
752 ASMAtomicWriteU32(&pBwMgr->cbTransferAllowed, pBwMgr->cbTransferPerSecStart - cbTransfer);
759 ASMAtomicAddU32(&pBwMgr->cbTransferAllowed, cbTransfer);
940 PPDMACBWMGR pBwMgr = pEndpointClass->pBwMgrsHead;
941 while (pBwMgr)
943 PPDMACBWMGR pFree = pBwMgr;
944 pBwMgr = pBwMgr->pNext;
1285 PPDMACBWMGR pBwMgr = pEpClass->pBwMgrsHead;
1288 if (pBwMgr)
1292 while (pBwMgr)
1294 LogRel(("AIOMgr: Id: %s\n", pBwMgr->pszId));
1295 LogRel(("AIOMgr: Max: %u B/s\n", pBwMgr->cbTransferPerSecMax));
1296 LogRel(("AIOMgr: Start: %u B/s\n", pBwMgr->cbTransferPerSecStart));
1297 LogRel(("AIOMgr: Step: %u B/s\n", pBwMgr->cbTransferPerSecStep));
1303 if (pEp->pBwMgr == pBwMgr)
1309 pBwMgr = pBwMgr->pNext;
1319 if (!pEp->pBwMgr)
1452 pEndpoint->pBwMgr = NULL;
1754 pBwMgrOld = ASMAtomicXchgPtrT(&pEndpoint->pBwMgr, pBwMgrNew, PPDMACBWMGR);
1798 PPDMACBWMGR pBwMgr = pdmacBwMgrFindById(pEpClass, pszBwMgr);
1799 if (pBwMgr)
1805 ASMAtomicWriteU32(&pBwMgr->cbTransferPerSecMax, cbMaxNew);
1806 ASMAtomicWriteU32(&pBwMgr->cbTransferPerSecStart, cbMaxNew);