Lines Matching refs:pTask
99 * @param pTask The task to free.
101 void pdmacFileTaskFree(PPDMASYNCCOMPLETIONENDPOINTFILE pEndpoint, PPDMACTASKFILE pTask)
105 LogFlowFunc((": pEndpoint=%p pTask=%p\n", pEndpoint, pTask));
111 pEndpoint->pTasksFreeTail->pNext = pTask;
112 pEndpoint->pTasksFreeTail = pTask;
117 Log(("Freeing task %p because all caches are full\n", pTask));
118 MMR3HeapFree(pTask);
130 PPDMACTASKFILE pTask = NULL;
144 (void **)&pTask);
146 pTask = NULL;
148 LogFlow(("Allocated task %p\n", pTask));
155 pTask = pEndpoint->pTasksFreeHead;
156 pEndpoint->pTasksFreeHead = pTask->pNext;
160 pTask->pNext = NULL;
162 return pTask;
175 PPDMACTASKFILE pTask = pTasks;
179 while (pTask)
181 PPDMACTASKFILE pCur = pTask;
182 pTask = pTask->pNext;
285 int pdmacFileEpAddTask(PPDMASYNCCOMPLETIONENDPOINTFILE pEndpoint, PPDMACTASKFILE pTask)
291 pTask->pNext = pNext;
292 } while (!ASMAtomicCmpXchgPtr(&pEndpoint->pTasksNewHead, pTask, pNext));
299 void pdmacFileEpTaskCompleted(PPDMACTASKFILE pTask, void *pvUser, int rc)
303 LogFlowFunc(("pTask=%#p pvUser=%#p rc=%Rrc\n", pTask, pvUser, rc));
305 if (pTask->enmTransferType == PDMACTASKFILETRANSFER_FLUSH)
309 Assert((uint32_t)pTask->DataSeg.cbSeg == pTask->DataSeg.cbSeg && (int32_t)pTask->DataSeg.cbSeg >= 0);
310 uint32_t uOld = ASMAtomicSubS32(&pTaskFile->cbTransferLeft, (int32_t)pTask->DataSeg.cbSeg);
321 if (pTask->enmTransferType == PDMACTASKFILETRANSFER_READ)
331 if (!(uOld - pTask->DataSeg.cbSeg)
375 DECLINLINE(void) pdmacFileEpTaskInit(PPDMASYNCCOMPLETIONTASK pTask, size_t cbTransfer)
377 PPDMASYNCCOMPLETIONTASKFILE pTaskFile = (PPDMASYNCCOMPLETIONTASKFILE)pTask;
385 int pdmacFileEpTaskInitiate(PPDMASYNCCOMPLETIONTASK pTask,
391 PPDMASYNCCOMPLETIONTASKFILE pTaskFile = (PPDMASYNCCOMPLETIONTASKFILE)pTask;
1141 PPDMACTASKFILE pTask = pEpFile->pTasksFreeHead;
1143 while (pTask)
1145 PPDMACTASKFILE pTaskFree = pTask;
1146 pTask = pTask->pNext;
1163 static int pdmacFileEpRead(PPDMASYNCCOMPLETIONTASK pTask,
1170 LogFlowFunc(("pTask=%#p pEndpoint=%#p off=%RTfoff paSegments=%#p cSegments=%zu cbRead=%zu\n",
1171 pTask, pEndpoint, off, paSegments, cSegments, cbRead));
1177 pdmacFileEpTaskInit(pTask, cbRead);
1178 int rc = pdmacFileEpTaskInitiate(pTask, pEndpoint, off, paSegments, cSegments, cbRead,
1185 static int pdmacFileEpWrite(PPDMASYNCCOMPLETIONTASK pTask,
1197 pdmacFileEpTaskInit(pTask, cbWrite);
1199 int rc = pdmacFileEpTaskInitiate(pTask, pEndpoint, off, paSegments, cSegments, cbWrite,
1207 static int pdmacFileEpFlush(PPDMASYNCCOMPLETIONTASK pTask,
1211 PPDMASYNCCOMPLETIONTASKFILE pTaskFile = (PPDMASYNCCOMPLETIONTASKFILE)pTask;
1216 pdmacFileEpTaskInit(pTask, 0);