Lines Matching refs:sdp
91 sdt_probe_t *sdp, *old; in __sdt_provide_module() local
133 sdp = kmem_zalloc(sizeof(sdt_probe_t), KM_SLEEP); in __sdt_provide_module()
134 sdp->sdp_loadcnt = ctl->mod_loadcnt; in __sdt_provide_module()
135 sdp->sdp_ctl = ctl; in __sdt_provide_module()
136 sdp->sdp_name = kmem_alloc(strlen(sdpd->sdpd_name) + 1, KM_SLEEP); in __sdt_provide_module()
137 (void) strlcpy(sdp->sdp_name, sdpd->sdpd_name, strlen(sdpd->sdpd_name) + 1); in __sdt_provide_module()
138 sdp->sdp_namelen = strlen(sdpd->sdpd_name) + 1; in __sdt_provide_module()
139 sdp->sdp_provider = prov; in __sdt_provide_module()
145 sdpd->sdpd_func, sdp->sdp_name)) != DTRACE_IDNONE) { in __sdt_provide_module()
149 sdp->sdp_next = old->sdp_next; in __sdt_provide_module()
150 sdp->sdp_id = id; in __sdt_provide_module()
151 old->sdp_next = sdp; in __sdt_provide_module()
153 sdp->sdp_id = dtrace_probe_create(prov->sdtp_id, in __sdt_provide_module()
154 modname, sdpd->sdpd_func, sdp->sdp_name, SDT_AFRAMES, sdp); in __sdt_provide_module()
160 printf("__sdt_provide_module: sdpd=0x%p sdp=0x%p name=%s, id=%d\n", sdpd, sdp, in __sdt_provide_module()
161 sdp->sdp_name, sdp->sdp_id); in __sdt_provide_module()
164 sdp->sdp_hashnext = in __sdt_provide_module()
166 sdt_probetab[SDT_ADDR2NDX(sdpd->sdpd_offset)] = sdp; in __sdt_provide_module()
168 sdp->sdp_patchval = SDT_PATCHVAL; in __sdt_provide_module()
169 sdp->sdp_patchpoint = (sdt_instr_t *)sdpd->sdpd_offset; in __sdt_provide_module()
170 sdp->sdp_savedval = *sdp->sdp_patchpoint; in __sdt_provide_module()
179 sdt_probe_t *sdp = parg, *old, *last, *hash; in sdt_destroy() local
182 struct modctl *ctl = sdp->sdp_ctl; in sdt_destroy()
188 if (ctl != NULL && ctl->mod_loadcnt == sdp->sdp_loadcnt && ctl->mod_loaded) { in sdt_destroy()
192 while (sdp != NULL) { in sdt_destroy()
193 old = sdp; in sdt_destroy()
198 ndx = SDT_ADDR2NDX(sdp->sdp_patchpoint); in sdt_destroy()
202 while (hash != sdp) { in sdt_destroy()
209 last->sdp_hashnext = sdp->sdp_hashnext; in sdt_destroy()
211 sdt_probetab[ndx] = sdp->sdp_hashnext; in sdt_destroy()
214 kmem_free(sdp->sdp_name, sdp->sdp_namelen); in sdt_destroy()
215 sdp = sdp->sdp_next; in sdt_destroy()
225 sdt_probe_t *sdp = parg; in sdt_enable() local
226 struct modctl *ctl = sdp->sdp_ctl; in sdt_enable()
238 sdp->sdp_name, ctl->mod_modname); in sdt_enable()
248 if (ctl->mod_loadcnt != sdp->sdp_loadcnt) { in sdt_enable()
252 sdp->sdp_name, ctl->mod_modname); in sdt_enable()
262 sdp->sdp_name, ctl->mod_modname); in sdt_enable()
267 while (sdp != NULL) { in sdt_enable()
268 (void)ml_nofault_copy((vm_offset_t)&sdp->sdp_patchval, (vm_offset_t)sdp->sdp_patchpoint, in sdt_enable()
269 (vm_size_t)sizeof(sdp->sdp_patchval)); in sdt_enable()
275 flush_dcache((vm_offset_t)sdp->sdp_patchpoint, (vm_size_t)sizeof(sdp->sdp_patchval), 0); in sdt_enable()
276 invalidate_icache((vm_offset_t)sdp->sdp_patchpoint, (vm_size_t)sizeof(sdp->sdp_patchval), 0); in sdt_enable()
278 sdp = sdp->sdp_next; in sdt_enable()
290 sdt_probe_t *sdp = parg; in sdt_disable() local
291 struct modctl *ctl = sdp->sdp_ctl; in sdt_disable()
295 if (!ctl->mod_loaded || ctl->mod_loadcnt != sdp->sdp_loadcnt) { in sdt_disable()
299 while (sdp != NULL) { in sdt_disable()
300 (void)ml_nofault_copy((vm_offset_t)&sdp->sdp_savedval, (vm_offset_t)sdp->sdp_patchpoint, in sdt_disable()
301 (vm_size_t)sizeof(sdp->sdp_savedval)); in sdt_disable()
306 flush_dcache((vm_offset_t)sdp->sdp_patchpoint, (vm_size_t)sizeof(sdp->sdp_savedval), 0); in sdt_disable()
307 invalidate_icache((vm_offset_t)sdp->sdp_patchpoint, (vm_size_t)sizeof(sdp->sdp_savedval), 0); in sdt_disable()
308 sdp = sdp->sdp_next; in sdt_disable()