Lines Matching defs:pAioMgr

57 static int pdmacFileAioMgrFailsafeProcessEndpointTaskList(PPDMACEPFILEMGR pAioMgr,
70 pAioMgr->msBwLimitExpired = RT_MIN(pAioMgr->msBwLimitExpired, msWhenNext);
126 static int pdmacFileAioMgrFailsafeProcessEndpoint(PPDMACEPFILEMGR pAioMgr,
137 rc = pdmacFileAioMgrFailsafeProcessEndpointTaskList(pAioMgr, pEndpoint, pTasks);
144 rc = pdmacFileAioMgrFailsafeProcessEndpointTaskList(pAioMgr, pEndpoint, pTasks);
157 PPDMACEPFILEMGR pAioMgr = (PPDMACEPFILEMGR)pvUser;
160 while ( (pAioMgr->enmState == PDMACEPFILEMGRSTATE_RUNNING)
161 || (pAioMgr->enmState == PDMACEPFILEMGRSTATE_SUSPENDING))
163 ASMAtomicWriteBool(&pAioMgr->fWaitingEventSem, true);
164 if (!ASMAtomicReadBool(&pAioMgr->fWokenUp))
165 rc = RTSemEventWait(pAioMgr->EventSem, pAioMgr->msBwLimitExpired);
166 ASMAtomicWriteBool(&pAioMgr->fWaitingEventSem, false);
170 ASMAtomicWriteBool(&pAioMgr->fWokenUp, false);
173 PPDMASYNCCOMPLETIONENDPOINTFILE pEndpoint = pAioMgr->pEndpointsHead;
176 pAioMgr->msBwLimitExpired = RT_INDEFINITE_WAIT;
177 rc = pdmacFileAioMgrFailsafeProcessEndpoint(pAioMgr, pEndpoint);
183 if (pAioMgr->fBlockingEventPending)
185 switch (pAioMgr->enmBlockingEvent)
189 PPDMASYNCCOMPLETIONENDPOINTFILE pEndpointNew = pAioMgr->BlockingEventData.AddEndpoint.pEndpoint;
194 pEndpointNew->AioMgr.pEndpointNext = pAioMgr->pEndpointsHead;
196 if (pAioMgr->pEndpointsHead)
197 pAioMgr->pEndpointsHead->AioMgr.pEndpointPrev = pEndpointNew;
198 pAioMgr->pEndpointsHead = pEndpointNew;
200 pAioMgr->cEndpoints++;
206 rc = pdmacFileAioMgrFailsafeProcessEndpoint(pAioMgr, pEndpointNew);
212 PPDMASYNCCOMPLETIONENDPOINTFILE pEndpointRemove = pAioMgr->BlockingEventData.RemoveEndpoint.pEndpoint;
223 pAioMgr->pEndpointsHead = pNext;
228 pAioMgr->cEndpoints--;
233 PPDMASYNCCOMPLETIONENDPOINTFILE pEndpointClose = pAioMgr->BlockingEventData.CloseEndpoint.pEndpoint;
239 rc = pdmacFileAioMgrFailsafeProcessEndpoint(pAioMgr, pEndpointClose);
244 pAioMgr->enmState = PDMACEPFILEMGRSTATE_SHUTDOWN;
247 pAioMgr->enmState = PDMACEPFILEMGRSTATE_SUSPENDING;
250 pAioMgr->enmState = PDMACEPFILEMGRSTATE_RUNNING;
253 AssertMsgFailed(("Invalid event type %d\n", pAioMgr->enmBlockingEvent));
256 ASMAtomicWriteBool(&pAioMgr->fBlockingEventPending, false);
257 pAioMgr->enmBlockingEvent = PDMACEPFILEAIOMGRBLOCKINGEVENT_INVALID;
260 rc = RTSemEventSignal(pAioMgr->EventSemBlock);