Lines Matching refs:prov
107 sdt_create_provider(struct sdt_provider *prov)
112 if (strcmp(prov->name, curr->name) == 0) {
119 * Make a copy of prov so that we don't lose fields if its module is
124 newprov->name = strdup(prov->name, M_SDT);
125 prov->sdt_refs = newprov->sdt_refs = 1;
131 prov->id = newprov->id;
137 struct sdt_provider *prov;
151 TAILQ_FOREACH(prov, &sdt_prov_list, prov_entry)
152 if (strcmp(prov->name, probe->prov->name) == 0)
155 KASSERT(prov != NULL, ("probe defined without a provider"));
187 if (dtrace_probe_lookup(prov->id, mod, func, name) != DTRACE_IDNONE)
190 (void)dtrace_probe_create(prov->id, mod, func, name, 1, probe);
266 struct sdt_provider **prov, **begin, **end;
272 for (prov = begin; prov < end; prov++)
273 sdt_create_provider(*prov);
298 struct sdt_provider *prov, **curr, **begin, **end, *tmp;
313 TAILQ_FOREACH_SAFE(prov, &sdt_prov_list, prov_entry, tmp) {
314 if (strcmp(prov->name, (*curr)->name) != 0)
317 if (prov->sdt_refs == 1) {
318 if (dtrace_unregister(prov->id) != 0) {
322 TAILQ_REMOVE(&sdt_prov_list, prov, prov_entry);
323 free(prov->name, M_SDT);
324 free(prov, M_SDT);
326 prov->sdt_refs--;
361 struct sdt_provider *prov, *tmp;
369 TAILQ_FOREACH_SAFE(prov, &sdt_prov_list, prov_entry, tmp) {
370 ret = dtrace_unregister(prov->id);
373 TAILQ_REMOVE(&sdt_prov_list, prov, prov_entry);
374 free(prov->name, M_SDT);
375 free(prov, M_SDT);