Lines Matching defs:pTemplate

171     PPDMASYNCCOMPLETIONTEMPLATE pTemplate;
172 int rc = MMR3HeapAllocZEx(pVM, MM_TAG_PDM_ASYNC_COMPLETION, sizeof(PDMASYNCCOMPLETIONTEMPLATE), (void **)&pTemplate);
179 pTemplate->pVM = pVM;
180 pTemplate->cUsed = 0;
181 pTemplate->enmType = enmType;
187 pTemplate->pNext = pUVM->pdm.s.pAsyncCompletionTemplates;
189 pUVM->pdm.s.pAsyncCompletionTemplates->pPrev = pTemplate;
190 pUVM->pdm.s.pAsyncCompletionTemplates = pTemplate;
193 *ppTemplate = pTemplate;
227 PPDMASYNCCOMPLETIONTEMPLATE pTemplate;
228 int rc = pdmR3AsyncCompletionTemplateCreate(pVM, &pTemplate, PDMASYNCCOMPLETIONTEMPLATETYPE_DEV);
231 pTemplate->u.Dev.pDevIns = pDevIns;
232 pTemplate->u.Dev.pfnCompleted = pfnCompleted;
234 *ppTemplate = pTemplate;
236 pTemplate, pfnCompleted, pDevIns));
272 PPDMASYNCCOMPLETIONTEMPLATE pTemplate;
273 int rc = pdmR3AsyncCompletionTemplateCreate(pVM, &pTemplate, PDMASYNCCOMPLETIONTEMPLATETYPE_DRV);
276 pTemplate->u.Drv.pDrvIns = pDrvIns;
277 pTemplate->u.Drv.pfnCompleted = pfnCompleted;
278 pTemplate->u.Drv.pvTemplateUser = pvTemplateUser;
280 *ppTemplate = pTemplate;
282 pTemplate, pfnCompleted, pDrvIns));
317 PPDMASYNCCOMPLETIONTEMPLATE pTemplate;
318 int rc = pdmR3AsyncCompletionTemplateCreate(pVM, &pTemplate, PDMASYNCCOMPLETIONTEMPLATETYPE_USB);
321 pTemplate->u.Usb.pUsbIns = pUsbIns;
322 pTemplate->u.Usb.pfnCompleted = pfnCompleted;
324 *ppTemplate = pTemplate;
326 pTemplate, pfnCompleted, pUsbIns));
362 PPDMASYNCCOMPLETIONTEMPLATE pTemplate;
363 int rc = pdmR3AsyncCompletionTemplateCreate(pVM, &pTemplate, PDMASYNCCOMPLETIONTEMPLATETYPE_INTERNAL);
366 pTemplate->u.Int.pvUser = pvUser2;
367 pTemplate->u.Int.pfnCompleted = pfnCompleted;
369 *ppTemplate = pTemplate;
371 pTemplate, pfnCompleted, pvUser2));
385 * @param pTemplate The template in question.
387 VMMR3DECL(int) PDMR3AsyncCompletionTemplateDestroy(PPDMASYNCCOMPLETIONTEMPLATE pTemplate)
389 LogFlow(("%s: pTemplate=%p\n", __FUNCTION__, pTemplate));
391 if (!pTemplate)
393 AssertMsgFailed(("pTemplate is NULL!\n"));
400 if (pTemplate->cUsed > 0)
409 PUVM pUVM = pTemplate->pVM->pUVM;
412 PPDMASYNCCOMPLETIONTEMPLATE pPrev = pTemplate->pPrev;
413 PPDMASYNCCOMPLETIONTEMPLATE pNext = pTemplate->pNext;
428 MMR3HeapFree(pTemplate);
460 PPDMASYNCCOMPLETIONTEMPLATE pTemplate = pUVM->pdm.s.pAsyncCompletionTemplates;
461 while (pTemplate)
463 if ( pTemplate->enmType == PDMASYNCCOMPLETIONTEMPLATETYPE_DEV
464 && pTemplate->u.Dev.pDevIns == pDevIns)
466 PPDMASYNCCOMPLETIONTEMPLATE pTemplateDestroy = pTemplate;
467 pTemplate = pTemplate->pNext;
476 pTemplate = pTemplate->pNext;
510 PPDMASYNCCOMPLETIONTEMPLATE pTemplate = pUVM->pdm.s.pAsyncCompletionTemplates;
511 while (pTemplate)
513 if ( pTemplate->enmType == PDMASYNCCOMPLETIONTEMPLATETYPE_DRV
514 && pTemplate->u.Drv.pDrvIns == pDrvIns)
516 PPDMASYNCCOMPLETIONTEMPLATE pTemplateDestroy = pTemplate;
517 pTemplate = pTemplate->pNext;
526 pTemplate = pTemplate->pNext;
560 PPDMASYNCCOMPLETIONTEMPLATE pTemplate = pUVM->pdm.s.pAsyncCompletionTemplates;
561 while (pTemplate)
563 if ( pTemplate->enmType == PDMASYNCCOMPLETIONTEMPLATETYPE_USB
564 && pTemplate->u.Usb.pUsbIns == pUsbIns)
566 PPDMASYNCCOMPLETIONTEMPLATE pTemplateDestroy = pTemplate;
567 pTemplate = pTemplate->pNext;
576 pTemplate = pTemplate->pNext;
785 PPDMASYNCCOMPLETIONTEMPLATE pTemplate = pTask->pEndpoint->pTemplate;
787 switch (pTemplate->enmType)
790 pTemplate->u.Dev.pfnCompleted(pTemplate->u.Dev.pDevIns, pTask->pvUser, rc);
794 pTemplate->u.Drv.pfnCompleted(pTemplate->u.Drv.pDrvIns, pTemplate->u.Drv.pvTemplateUser, pTask->pvUser, rc);
798 pTemplate->u.Usb.pfnCompleted(pTemplate->u.Usb.pUsbIns, pTask->pvUser, rc);
802 pTemplate->u.Int.pfnCompleted(pTemplate->pVM, pTask->pvUser, pTemplate->u.Int.pvUser, rc);
1402 * @param pTemplate Handle to the completion callback template to use
1407 PPDMASYNCCOMPLETIONTEMPLATE pTemplate)
1409 LogFlowFunc((": ppEndpoint=%p pszFilename=%p{%s} fFlags=%u pTemplate=%p\n",
1410 ppEndpoint, pszFilename, pszFilename, fFlags, pTemplate));
1415 AssertPtrReturn(pTemplate, VERR_INVALID_POINTER);
1421 PVM pVM = pTemplate->pVM;
1449 pEndpoint->pTemplate = pTemplate;
1481 ASMAtomicIncU32(&pTemplate->cUsed);
1525 ASMAtomicDecU32(&pEndpoint->pTemplate->cUsed);