Lines Matching refs:MemBalloon

491     if (pDevExt->MemBalloon.fUseKernelAPI)
496 if (cBalloonChunks > pDevExt->MemBalloon.cMaxChunks)
499 cBalloonChunks, pDevExt->MemBalloon.cMaxChunks));
503 if (cBalloonChunks == pDevExt->MemBalloon.cMaxChunks)
506 if ( cBalloonChunks > pDevExt->MemBalloon.cChunks
507 && !pDevExt->MemBalloon.paMemObj)
509 pDevExt->MemBalloon.paMemObj = (PRTR0MEMOBJ)RTMemAllocZ(sizeof(RTR0MEMOBJ) * pDevExt->MemBalloon.cMaxChunks);
510 if (!pDevExt->MemBalloon.paMemObj)
521 if (cBalloonChunks > pDevExt->MemBalloon.cChunks)
524 for (i = pDevExt->MemBalloon.cChunks; i < cBalloonChunks; i++)
526 rc = RTR0MemObjAllocPhysNC(&pDevExt->MemBalloon.paMemObj[i],
534 pDevExt->MemBalloon.fUseKernelAPI = false;
535 Assert(pDevExt->MemBalloon.cChunks == 0);
544 rc = vbgdBalloonInflate(&pDevExt->MemBalloon.paMemObj[i], pReq);
548 RTR0MemObjFree(pDevExt->MemBalloon.paMemObj[i], true);
549 pDevExt->MemBalloon.paMemObj[i] = NIL_RTR0MEMOBJ;
552 pDevExt->MemBalloon.cChunks++;
558 for (i = pDevExt->MemBalloon.cChunks; i-- > cBalloonChunks;)
560 rc = vbgdBalloonDeflate(&pDevExt->MemBalloon.paMemObj[i], pReq);
566 pDevExt->MemBalloon.cChunks--;
577 *pfHandleInR3 = pDevExt->MemBalloon.fUseKernelAPI ? false : true;
604 if ( pDevExt->MemBalloon.cChunks > pDevExt->MemBalloon.cMaxChunks - 1
605 || pDevExt->MemBalloon.cMaxChunks == 0 /* If called without first querying. */)
608 pDevExt->MemBalloon.cChunks, pDevExt->MemBalloon.cMaxChunks));
612 if (!pDevExt->MemBalloon.paMemObj)
614 pDevExt->MemBalloon.paMemObj = (PRTR0MEMOBJ)RTMemAlloc(sizeof(RTR0MEMOBJ) * pDevExt->MemBalloon.cMaxChunks);
615 if (!pDevExt->MemBalloon.paMemObj)
620 for (i = 0; i < pDevExt->MemBalloon.cMaxChunks; i++)
621 pDevExt->MemBalloon.paMemObj[i] = NIL_RTR0MEMOBJ;
626 if (pDevExt->MemBalloon.cChunks == 0)
636 for (i = 0; i < pDevExt->MemBalloon.cMaxChunks; i++)
640 && pDevExt->MemBalloon.paMemObj[i] == NIL_RTR0MEMOBJ)
641 pMemObj = &pDevExt->MemBalloon.paMemObj[i]; /* found free object pointer */
642 if (RTR0MemObjAddressR3(pDevExt->MemBalloon.paMemObj[i]) == u64ChunkAddr)
646 pMemObj = &pDevExt->MemBalloon.paMemObj[i];
677 pDevExt->MemBalloon.cChunks++;
690 pDevExt->MemBalloon.cChunks--;
711 RTSemFastMutexRequest(pDevExt->MemBalloon.hMtx);
712 if ( pDevExt->MemBalloon.pOwner == pSession
715 if (pDevExt->MemBalloon.paMemObj)
722 for (i = pDevExt->MemBalloon.cChunks; i-- > 0;)
724 rc = vbgdBalloonDeflate(&pDevExt->MemBalloon.paMemObj[i], pReq);
728 rc, pDevExt->MemBalloon.cChunks));
731 pDevExt->MemBalloon.paMemObj[i] = NIL_RTR0MEMOBJ;
732 pDevExt->MemBalloon.cChunks--;
738 rc, pDevExt->MemBalloon.cChunks));
739 RTMemFree(pDevExt->MemBalloon.paMemObj);
740 pDevExt->MemBalloon.paMemObj = NULL;
743 pDevExt->MemBalloon.pOwner = NULL;
745 RTSemFastMutexRelease(pDevExt->MemBalloon.hMtx);
975 pDevExt->MemBalloon.hMtx = NIL_RTSEMFASTMUTEX;
976 pDevExt->MemBalloon.cChunks = 0;
977 pDevExt->MemBalloon.cMaxChunks = 0;
978 pDevExt->MemBalloon.fUseKernelAPI = true;
979 pDevExt->MemBalloon.paMemObj = NULL;
980 pDevExt->MemBalloon.pOwner = NULL;
1032 rc = RTSemFastMutexCreate(&pDevExt->MemBalloon.hMtx);
1107 rc2 = RTSemFastMutexDestroy(pDevExt->MemBalloon.hMtx); AssertRC(rc2);
1188 rc2 = RTSemFastMutexDestroy(pDevExt->MemBalloon.hMtx); AssertRC(rc2);
2297 rc = RTSemFastMutexRequest(pDevExt->MemBalloon.hMtx);
2304 if ( pDevExt->MemBalloon.pOwner != pSession
2305 && pDevExt->MemBalloon.pOwner == NULL)
2306 pDevExt->MemBalloon.pOwner = pSession;
2308 if (pDevExt->MemBalloon.pOwner == pSession)
2322 Assert(pDevExt->MemBalloon.cMaxChunks == pReq->cPhysMemChunks || pDevExt->MemBalloon.cMaxChunks == 0);
2323 pDevExt->MemBalloon.cMaxChunks = pReq->cPhysMemChunks;
2346 RTSemFastMutexRelease(pDevExt->MemBalloon.hMtx);
2369 rc = RTSemFastMutexRequest(pDevExt->MemBalloon.hMtx);
2372 if (!pDevExt->MemBalloon.fUseKernelAPI)
2378 if ( pDevExt->MemBalloon.pOwner != pSession
2379 && pDevExt->MemBalloon.pOwner == NULL)
2380 pDevExt->MemBalloon.pOwner = pSession;
2382 if (pDevExt->MemBalloon.pOwner == pSession)
2394 RTSemFastMutexRelease(pDevExt->MemBalloon.hMtx);