Lines Matching refs:pProv

694  * @param   pProv               The provider to free.
696 static void supdrvTracerFreeProvider(PSUPDRVTPPROVIDER pProv)
698 LOG_TRACER(("Freeing tracepoint provider '%s' / %p\n", pProv->szName, pProv->Core.TracerData.DTrace.idProvider));
699 pProv->fRegistered = false;
700 pProv->fZombie = true;
701 pProv->Core.pDesc = NULL;
702 pProv->Core.pHdr = NULL;
703 pProv->Core.paProbeLocsRO = NULL;
704 pProv->Core.pvProbeLocsEn = NULL;
705 pProv->Core.pacProbeEnabled = NULL;
706 pProv->Core.paR0ProbeLocs = NULL;
707 pProv->Core.paR0Probes = NULL;
708 RT_ZERO(pProv->Core.TracerData);
709 RTMemFree(pProv);
719 * @param pProv The provider.
723 static void supdrvTracerDeregisterVtgObj(PSUPDRVDEVEXT pDevExt, PSUPDRVTPPROVIDER pProv)
727 RTListNodeRemove(&pProv->ListEntry);
728 if (pProv->pSession)
730 RTListNodeRemove(&pProv->SessionListEntry);
731 RTListInit(&pProv->SessionListEntry);
732 pProv->pSession->cTpProviders--;
735 if (!pProv->fRegistered || !pDevExt->pTracerOps)
738 rc = pDevExt->pTracerOps->pfnProviderDeregister(pDevExt->pTracerOps, &pProv->Core);
741 supdrvTracerFreeProvider(pProv);
745 pProv->fZombie = true;
746 pProv->pImage = NULL;
747 pProv->pSession = NULL;
748 pProv->pUmod = NULL;
749 pProv->Core.pDesc = NULL;
750 pProv->Core.pHdr = NULL;
751 pProv->Core.paProbeLocsRO = NULL;
752 pProv->Core.pvProbeLocsEn = NULL;
753 pProv->Core.pacProbeEnabled = NULL;
754 pProv->Core.paR0ProbeLocs = NULL;
756 RTListAppend(&pDevExt->TracerProviderZombieList, &pProv->ListEntry);
758 pProv->szName, pProv->Core.TracerData.DTrace.idProvider, rc));
769 PSUPDRVTPPROVIDER pProv, pProvNext;
772 RTListForEachSafe(&pDevExt->TracerProviderZombieList, pProv, pProvNext, SUPDRVTPPROVIDER, ListEntry)
774 int rc = pDevExt->pTracerOps->pfnProviderDeregisterZombie(pDevExt->pTracerOps, &pProv->Core);
777 RTListNodeRemove(&pProv->ListEntry);
778 supdrvTracerFreeProvider(pProv);
796 PSUPDRVTPPROVIDER pProv;
803 RTListForEachSafe(&pDevExt->TracerProviderList, pProv, pProvNext, SUPDRVTPPROVIDER, ListEntry)
805 supdrvTracerDeregisterVtgObj(pDevExt, pProv);
819 RTListForEachSafe(&pDevExt->TracerProviderZombieList, pProv, pProvNext, SUPDRVTPPROVIDER, ListEntry)
823 pProv->szName, pProv->Core.TracerData.DTrace.idProvider));
826 rc = pDevExt->pTracerOps->pfnProviderDeregisterZombie(pDevExt->pTracerOps, &pProv->Core);
831 RTListNodeRemove(&pProv->ListEntry);
832 supdrvTracerFreeProvider(pProv);
836 pProv->szName, pProv->Core.TracerData.DTrace.idProvider, rc);
839 pProv->szName, pProv->Core.TracerData.DTrace.idProvider, rc));
883 PSUPDRVTPPROVIDER pProv;
914 RTListForEach(&pDevExt->TracerProviderList, pProv, SUPDRVTPPROVIDER, ListEntry)
916 if (pProv->Core.pHdr == pVtgHdr)
922 if ( pProv->pSession == pSession
923 && pProv->pImage == pImage)
932 RTListForEach(&pSession->TpProviders, pProv, SUPDRVTPPROVIDER, SessionListEntry)
934 if (pProv->Core.pHdr == pVtgHdr)
955 pProv = (PSUPDRVTPPROVIDER)RTMemAllocZ(RT_OFFSETOF(SUPDRVTPPROVIDER, szName[cchName + 1 + cchModName + 1]));
956 if (pProv)
958 pProv->Core.pszName = &pProv->szName[0];
959 pProv->Core.pszModName = &pProv->szName[cchName + 1];
960 pProv->Core.pDesc = pDesc;
961 pProv->Core.pHdr = pVtgHdr;
962 pProv->Core.paProbeLocsRO = (PCVTGPROBELOC )((uintptr_t)pVtgHdr + pVtgHdr->offProbeLocs);
965 pProv->Core.pvProbeLocsEn = (void *)((uintptr_t)pVtgHdr + pVtgHdr->offProbeLocs);
966 pProv->Core.pacProbeEnabled = (uint32_t *)((uintptr_t)pVtgHdr + pVtgHdr->offProbeEnabled);
967 pProv->Core.paR0ProbeLocs = NULL;
968 pProv->Core.paR0Probes = NULL;
969 pProv->Core.cbProbeLocsEn = sizeof(VTGPROBELOC);
970 pProv->Core.cBits = ARCH_BITS;
971 pProv->Core.fUmod = false;
975 pProv->Core.pvProbeLocsEn = pUmod->pvProbeLocs;
976 pProv->Core.pacProbeEnabled = pUmod->pacProbeEnabled;
977 pProv->Core.paR0ProbeLocs = &pUmod->aProbeLocs[0];
978 pProv->Core.paR0Probes = (PSUPDRVPROBEINFO)&pUmod->aProbeLocs[pUmod->cProbeLocs];
979 pProv->Core.cbProbeLocsEn = pUmod->cbProbeLoc;
980 pProv->Core.cBits = pUmod->cBits;
981 pProv->Core.fUmod = true;
983 pProv->pImage = pImage;
984 pProv->pSession = pSession;
985 pProv->pUmod = pUmod;
986 pProv->fZombie = false;
987 pProv->fRegistered = true;
990 memcpy(pProv->szName, pszName, cchName + 1);
992 RTStrPrintf(pProv->szName, cchName + 1, "%s%u", pszName, (uint32_t)pSession->Process);
993 memcpy((void *)pProv->Core.pszModName, pszModName, cchModName + 1);
1004 rc = pDevExt->pTracerOps->pfnProviderRegister(pDevExt->pTracerOps, &pProv->Core);
1007 pProv->fRegistered = false;
1012 RTListAppend(&pDevExt->TracerProviderList, &pProv->ListEntry);
1015 RTListAppend(&pSession->TpProviders, &pProv->SessionListEntry);
1019 RTListInit(&pProv->SessionListEntry);
1022 pProv->szName, pszModName, pProv->Core.TracerData.DTrace.idProvider));
1028 pProv->szName, pszModName, rc));
1043 if (pProv)
1044 supdrvTracerFreeProvider(pProv);
1049 RTListForEachReverseSafe(&pDevExt->TracerProviderList, pProv, pProvNext, SUPDRVTPPROVIDER, ListEntry)
1051 if (pProv->Core.pHdr == pVtgHdr)
1052 supdrvTracerDeregisterVtgObj(pDevExt, pProv);
1057 RTListForEachSafe(&pSession->TpProviders, pProv, pProvNext, SUPDRVTPPROVIDER, SessionListEntry)
1059 if (pProv->Core.pHdr == pVtgHdr)
1060 supdrvTracerDeregisterVtgObj(pDevExt, pProv);
1109 PSUPDRVTPPROVIDER pProv, pProvNext;
1121 RTListForEachSafe(&pSession->TpProviders, pProv, pProvNext, SUPDRVTPPROVIDER, SessionListEntry)
1123 supdrvTracerDeregisterVtgObj(pDevExt, pProv);
1195 PSUPDRVTPPROVIDER pProv;
1256 RTListForEach(&pDevExt->TracerProviderList, pProv, SUPDRVTPPROVIDER, ListEntry)
1258 Assert(!pProv->fRegistered);
1259 pProv->fRegistered = true;
1260 rc2 = pDevExt->pTracerOps->pfnProviderRegister(pDevExt->pTracerOps, &pProv->Core);
1263 pProv->fRegistered = false;
1265 pProv->Core.pszModName, pProv->szName, rc2);
1289 PSUPDRVTPPROVIDER pProv;
1308 RTListForEachSafe(&pDevExt->TracerProviderList, pProv, pProvNext, SUPDRVTPPROVIDER, ListEntry)
1312 pProv->szName, pProv->Core.TracerData.DTrace.idProvider));
1314 if (!pProv->fRegistered)
1316 if (!pProv->fZombie)
1318 rc = pDevExt->pTracerOps->pfnProviderDeregister(pDevExt->pTracerOps, &pProv->Core);
1320 pProv->fZombie = true;
1323 rc = pDevExt->pTracerOps->pfnProviderDeregisterZombie(pDevExt->pTracerOps, &pProv->Core);
1325 pProv->fZombie = pProv->fRegistered = false;
1331 pProv->szName, pProv->Core.TracerData.DTrace.idProvider, rc);
1334 pProv->szName, pProv->Core.TracerData.DTrace.idProvider, rc));
1339 RTListForEachSafe(&pDevExt->TracerProviderZombieList, pProv, pProvNext, SUPDRVTPPROVIDER, ListEntry)
1343 pProv->szName, pProv->Core.TracerData.DTrace.idProvider));
1345 rc = pDevExt->pTracerOps->pfnProviderDeregisterZombie(pDevExt->pTracerOps, &pProv->Core);
1348 RTListNodeRemove(&pProv->ListEntry);
1349 supdrvTracerFreeProvider(pProv);
1356 pProv->szName, pProv->Core.TracerData.DTrace.idProvider, rc);
1359 pProv->szName, pProv->Core.TracerData.DTrace.idProvider, rc));
1515 PSUPDRVTPPROVIDER pProv, pProvNext;
1536 RTListForEachSafe(&pDevExt->TracerProviderList, pProv, pProvNext, SUPDRVTPPROVIDER, ListEntry)
1538 if (pProv->pImage == pImage)
1539 supdrvTracerDeregisterVtgObj(pDevExt, pProv);
1564 SUPDRVTPPROVIDER *pProv;
1566 RTListForEachSafe(&pSession->TpProviders, pProv, pProvNext, SUPDRVTPPROVIDER, SessionListEntry)
1568 supdrvTracerDeregisterVtgObj(pDevExt, pProv);
2119 SUPDRVTPPROVIDER *pProv;
2132 RTListForEachSafe(&pSession->TpProviders, pProv, pProvNext, SUPDRVTPPROVIDER, SessionListEntry)
2134 if (pProv->pUmod == pUmod)
2135 supdrvTracerDeregisterVtgObj(pDevExt, pProv);