Lines Matching refs:pSession

73     PSUPDRVSESSION          pSession;
728 if (pProv->pSession)
732 pProv->pSession->cTpProviders--;
747 pProv->pSession = NULL;
873 * @param pSession The session if applicable.
879 PSUPDRVSESSION pSession, PSUPDRVTRACERUMOD pUmod, const char *pszModName)
892 AssertPtrNullReturn(pSession, VERR_INVALID_POINTER);
912 if (pImage || !pSession || pSession->R0Process == NIL_RTPROCESS)
922 if ( pProv->pSession == pSession
932 RTListForEach(&pSession->TpProviders, pProv, SUPDRVTPPROVIDER, SessionListEntry)
984 pProv->pSession = pSession;
992 RTStrPrintf(pProv->szName, cchName + 1, "%s%u", pszName, (uint32_t)pSession->Process);
1013 if (pSession)
1015 RTListAppend(&pSession->TpProviders, &pProv->SessionListEntry);
1016 pSession->cTpProviders++;
1057 RTListForEachSafe(&pSession->TpProviders, pProv, pProvNext, SUPDRVTPPROVIDER, SessionListEntry)
1076 * @param pSession The support driver session handle.
1080 SUPR0DECL(int) SUPR0TracerRegisterDrv(PSUPDRVSESSION pSession, PVTGOBJHDR pVtgHdr, const char *pszName)
1084 AssertReturn(SUP_IS_SESSION_VALID(pSession), VERR_INVALID_PARAMETER);
1087 AssertReturn(pSession->R0Process == NIL_RTR0PROCESS, VERR_INVALID_PARAMETER);
1088 LOG_TRACER(("SUPR0TracerRegisterDrv: pSession=%p pVtgHdr=%p pszName=%s\n", pSession, pVtgHdr, pszName));
1090 rc = supdrvTracerRegisterVtgObj(pSession->pDevExt, pVtgHdr, NULL /*pImage*/, pSession, NULL /*pUmod*/, pszName);
1095 supdrvTracerProcessZombies(pSession->pDevExt);
1104 * @param pSession The support driver session handle.
1107 SUPR0DECL(void) SUPR0TracerDeregisterDrv(PSUPDRVSESSION pSession)
1111 AssertReturnVoid(SUP_IS_SESSION_VALID(pSession));
1112 AssertReturnVoid(pSession->R0Process == NIL_RTR0PROCESS);
1113 LOG_TRACER(("SUPR0TracerDeregisterDrv: pSession=%p\n", pSession));
1115 pDevExt = pSession->pDevExt;
1121 RTListForEachSafe(&pSession->TpProviders, pProv, pProvNext, SUPDRVTPPROVIDER, SessionListEntry)
1168 rc = supdrvTracerRegisterVtgObj(pDevExt, pVtgHdr, pImage, NULL /*pSession*/, NULL /*pUmod*/, pImage->szName);
1187 * @param pSession Ring-0 session handle.
1191 SUPR0DECL(int) SUPR0TracerRegisterImpl(void *hMod, PSUPDRVSESSION pSession, PCSUPDRVTRACERREG pReg, PCSUPDRVTRACERHLP *ppHlp)
1209 AssertReturn(pSession == NULL, VERR_INVALID_PARAMETER);
1217 AssertReturn(SUP_IS_SESSION_VALID(pSession), VERR_INVALID_PARAMETER);
1218 AssertReturn(pSession->R0Process == NIL_RTR0PROCESS, VERR_INVALID_PARAMETER);
1219 pDevExt = pSession->pDevExt;
1245 pDevExt->pTracerSession = pSession;
1412 * @param pSession Ring-0 session handle.
1414 SUPR0DECL(int) SUPR0TracerDeregisterImpl(void *hMod, PSUPDRVSESSION pSession)
1426 AssertReturn(pSession == NULL, VERR_INVALID_PARAMETER);
1431 AssertReturn(SUP_IS_SESSION_VALID(pSession), VERR_INVALID_PARAMETER);
1432 AssertReturn(pSession->R0Process == NIL_RTR0PROCESS, VERR_INVALID_PARAMETER);
1433 pDevExt = pSession->pDevExt;
1445 : pDevExt->pTracerSession == pSession)
1556 * @param pSession The session that is being torn down.
1558 void VBOXCALL supdrvTracerCleanupSession(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession)
1566 RTListForEachSafe(&pSession->TpProviders, pProv, pProvNext, SUPDRVTPPROVIDER, SessionListEntry)
1575 if (pSession->uTracerData)
1576 supdrvIOCtl_TracerClose(pDevExt, pSession);
1581 if (pSession->R0Process == NIL_RTR0PROCESS)
1582 (void)SUPR0TracerDeregisterImpl(NULL, pSession);
1584 if (pSession->R0Process != NIL_RTR0PROCESS)
1593 RTListForEachSafe(&pSession->TpUmods, pUmod, pUmodNext, SUPDRVTRACERUMOD, ListEntry)
1854 * @param pSession The current session.
1857 static void supdrvTracerUmodClearProbeIds(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession, PSUPDRVTRACERUMOD pUmod)
1861 AssertReturnVoid(pUmod->iLookupTable < RT_ELEMENTS(pSession->apTpLookupTable));
1862 AssertReturnVoid(pSession->apTpLookupTable[pUmod->iLookupTable] == pUmod);
1886 if (pSession->apTpLookupTable[pUmod->iLookupTable] == pUmod)
1888 if (pSession->cTpProbesFiring > 0)
1891 while (pSession->cTpProbesFiring > 0)
1901 ASMAtomicWriteNullPtr(&pSession->apTpLookupTable[pUmod->iLookupTable]);
1913 * @param pSession The current session.
1916 static int supdrvTracerUmodSetProbeIds(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession, PSUPDRVTRACERUMOD pUmod)
1925 for (i = 0; i < RT_ELEMENTS(pSession->apTpLookupTable); i++)
1927 if (!pSession->apTpLookupTable[i])
1929 pSession->apTpLookupTable[i] = pUmod;
1935 if (i >= RT_ELEMENTS(pSession->apTpLookupTable))
1961 int VBOXCALL supdrvIOCtl_TracerUmodRegister(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession,
1976 if (pSession->R0Process == NIL_RTR0PROCESS)
1982 if (pSession->cTpProviders >= RT_ELEMENTS(pSession->apTpLookupTable))
2065 rc = supdrvTracerUmodSetProbeIds(pDevExt, pSession, pUmod);
2072 NULL /*pImage*/, pSession, pUmod, pszModName);
2076 RTListAppend(&pSession->TpUmods, &pUmod->ListEntry);
2083 supdrvTracerUmodClearProbeIds(pDevExt, pSession, pUmod);
2097 int VBOXCALL supdrvIOCtl_TracerUmodDeregister(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession, RTR3PTR R3PtrVtgHdr)
2107 for (i = 0; i < RT_ELEMENTS(pSession->apTpLookupTable); i++)
2109 pUmod = pSession->apTpLookupTable[i];
2126 supdrvTracerUmodClearProbeIds(pDevExt, pSession, pUmod);
2132 RTListForEachSafe(&pSession->TpProviders, pProv, pProvNext, SUPDRVTPPROVIDER, SessionListEntry)
2160 * @param pSession The calling session.
2163 static void supdrvTracerUmodProbeFire(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession, PSUPDRVTRACERUSRCTX pCtx)
2176 if (RT_UNLIKELY(iLookupTable >= RT_ELEMENTS(pSession->apTpLookupTable)))
2182 ASMAtomicIncU32(&pSession->cTpProviders);
2184 pUmod = pSession->apTpLookupTable[iLookupTable];
2210 pDevExt->pTracerOps->pfnProbeFireUser(pDevExt->pTracerOps, pSession, pCtx, &pVtgCopy->Hdr, pProbeLocRO);
2218 ASMAtomicDecU32(&pSession->cTpProviders);
2222 SUPR0DECL(void) SUPR0TracerUmodProbeFire(PSUPDRVSESSION pSession, PSUPDRVTRACERUSRCTX pCtx)
2224 AssertReturnVoid(SUP_IS_SESSION_VALID(pSession));
2227 supdrvTracerUmodProbeFire(pSession->pDevExt, pSession, pCtx);
2231 void VBOXCALL supdrvIOCtl_TracerUmodProbeFire(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession, PSUPDRVTRACERUSRCTX pCtx)
2233 supdrvTracerUmodProbeFire(pDevExt, pSession, pCtx);
2242 * @param pSession The current session.
2246 int VBOXCALL supdrvIOCtl_TracerOpen(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession, uint32_t uCookie, uintptr_t uArg)
2253 if (!pSession->uTracerData)
2257 if (pDevExt->pTracerSession != pSession)
2261 if (pSession->hTracerCaller == NIL_RTNATIVETHREAD)
2264 pSession->uTracerData = ~(uintptr_t)0;
2265 pSession->hTracerCaller = hNativeSelf;
2268 rc = pDevExt->pTracerOps->pfnTracerOpen(pDevExt->pTracerOps, pSession, uCookie, uArg, &pSession->uTracerData);
2274 pSession->uTracerData = 0;
2276 pSession->hTracerCaller = NIL_RTNATIVETHREAD;
2303 * @param pSession The current session.
2305 int VBOXCALL supdrvIOCtl_TracerClose(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession)
2312 if (pSession->uTracerData)
2318 if (pSession->hTracerCaller == NIL_RTNATIVETHREAD)
2320 uintptr_t uTracerData = pSession->uTracerData;
2321 pSession->uTracerData = 0;
2322 pSession->hTracerCaller = hNativeSelf;
2325 pDevExt->pTracerOps->pfnTracerClose(pDevExt->pTracerOps, pSession, uTracerData);
2329 pSession->hTracerCaller = NIL_RTNATIVETHREAD;
2339 pSession->uTracerData = 0;
2357 * @param pSession The current session.
2362 int VBOXCALL supdrvIOCtl_TracerIOCtl(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession, uintptr_t uCmd, uintptr_t uArg, int32_t *piRetVal)
2370 if (pSession->uTracerData)
2377 if (pSession->hTracerCaller == NIL_RTNATIVETHREAD)
2379 uintptr_t uTracerData = pSession->uTracerData;
2381 pSession->hTracerCaller = hNativeSelf;
2384 rc = pDevExt->pTracerOps->pfnTracerIoCtl(pDevExt->pTracerOps, pSession, uTracerData, uCmd, uArg, piRetVal);
2387 pSession->hTracerCaller = NIL_RTNATIVETHREAD;
2442 rc = supdrvTracerRegisterVtgObj(pDevExt, &g_VTGObjHeader, NULL /*pImage*/, NULL /*pSession*/, NULL /*pUmod*/, "vboxdrv");