Lines Matching refs:ctl
80 __sdt_provide_module(void *arg, struct modctl *ctl) in __sdt_provide_module() argument
83 char *modname = ctl->mod_modname; in __sdt_provide_module()
99 if (!ctl || ctl->mod_sdtprobecnt != 0 || (sdpd = ctl->mod_sdtdesc) == NULL) { in __sdt_provide_module()
103 for (sdpd = ctl->mod_sdtdesc; sdpd != NULL; sdpd = sdpd->sdpd_next) { in __sdt_provide_module()
128 sdp->sdp_loadcnt = ctl->mod_loadcnt; in __sdt_provide_module()
129 sdp->sdp_ctl = ctl; in __sdt_provide_module()
150 ctl->mod_sdtprobecnt++; in __sdt_provide_module()
176 struct modctl *ctl = sdp->sdp_ctl; in sdt_destroy() local
182 if (ctl != NULL && ctl->mod_loadcnt == sdp->sdp_loadcnt && ctl->mod_loaded) { in sdt_destroy()
183 ctl->mod_sdtprobecnt--; in sdt_destroy()
220 struct modctl *ctl = sdp->sdp_ctl; in sdt_enable() local
222 ctl->mod_nenabled++; in sdt_enable()
228 if (!ctl->mod_loaded) { in sdt_enable()
232 sdp->sdp_name, ctl->mod_modname); in sdt_enable()
242 if (ctl->mod_loadcnt != sdp->sdp_loadcnt) { in sdt_enable()
246 sdp->sdp_name, ctl->mod_modname); in sdt_enable()
256 sdp->sdp_name, ctl->mod_modname); in sdt_enable()
285 struct modctl *ctl = sdp->sdp_ctl; in sdt_disable() local
287 ctl->mod_nenabled--; in sdt_disable()
289 if (!ctl->mod_loaded || ctl->mod_loadcnt != sdp->sdp_loadcnt) { in sdt_disable()
461 sdt_get_module_mh(struct modctl *ctl) in sdt_get_module_mh() argument
463 kernel_mach_header_t *mh = (kernel_mach_header_t *)ctl->mod_address; in sdt_get_module_mh()
466 if (MOD_IS_STATIC_KEXT(ctl)) { in sdt_get_module_mh()
481 sdt_find_symbol_table(struct modctl *ctl, kernel_nlist_t **sym, char **strings) in sdt_find_symbol_table() argument
483 kernel_mach_header_t *mh = sdt_get_module_mh(ctl); in sdt_find_symbol_table()
550 sdt_find_module_text_range(struct modctl *ctl, vm_address_t *start, vm_address_t *end) in sdt_find_module_text_range() argument
559 *start = ctl->mod_address; in sdt_find_module_text_range()
561 if (MOD_IS_MACH_KERNEL(ctl) && kc_format == KCFormatStatic) { in sdt_find_module_text_range()
564 *end = ctl->mod_address + ctl->mod_size; in sdt_find_module_text_range()
574 sdt_load_machsect(struct modctl *ctl) in sdt_load_machsect() argument
576 kernel_mach_header_t *mh = sdt_get_module_mh(ctl); in sdt_load_machsect()
589 if (!sdt_find_module_text_range(ctl, &text_start, &text_end)) { in sdt_load_machsect()
590 printf("SDT: Unable to determine text range for %s\n", ctl->mod_modname); in sdt_load_machsect()
595 if (MOD_HAS_KERNEL_SYMBOLS(ctl) && (nsyms = sdt_find_symbol_table(ctl, &sym, &strings)) == 0) { in sdt_load_machsect()
596 printf("SDT: No kernel symbols for %s\n", ctl->mod_modname); in sdt_load_machsect()
617 if (MOD_IS_STATIC_KEXT(ctl) || MOD_IS_MACH_KERNEL(ctl)) { in sdt_load_machsect()
623 if (!dtrace_addr_in_module((void *)sdtdef->dsd_addr, ctl)) { in sdt_load_machsect()
643 if (MOD_HAS_KERNEL_SYMBOLS(ctl)) { in sdt_load_machsect()
683 sdpd->sdpd_next = (sdt_probedesc_t *)ctl->mod_sdtdesc; in sdt_load_machsect()
684 ctl->mod_sdtdesc = sdpd; in sdt_load_machsect()
715 sdt_provide_module_user_syms(void *arg, struct modctl *ctl) in sdt_provide_module_user_syms() argument
718 dtrace_module_symbols_t *mod_sym = ctl->mod_user_symbols; in sdt_provide_module_user_syms()
721 printf("DTrace missing userspace symbols for module %s\n", ctl->mod_modname); in sdt_provide_module_user_syms()
726 for (sdpd = ctl->mod_sdtdesc; sdpd != NULL; sdpd = sdpd->sdpd_next) { in sdt_provide_module_user_syms()
748 if (!dtrace_addr_in_module((void *)symbol->dtsym_addr, ctl)) { in sdt_provide_module_user_syms()
766 __sdt_provide_module(arg, ctl); in sdt_provide_module_user_syms()
771 sdt_provide_module(void *arg, struct modctl *ctl) in sdt_provide_module() argument
773 ASSERT(ctl != NULL); in sdt_provide_module()
777 if (MOD_SDT_DONE(ctl)) { in sdt_provide_module()
781 if (MOD_HAS_KERNEL_SYMBOLS(ctl)) { in sdt_provide_module()
782 __sdt_provide_module(arg, ctl); in sdt_provide_module()
783 ctl->mod_flags |= MODCTL_SDT_PROBES_PROVIDED; in sdt_provide_module()
787 if (MOD_HAS_USERSPACE_SYMBOLS(ctl)) { in sdt_provide_module()
788 sdt_provide_module_user_syms(arg, ctl); in sdt_provide_module()
789 ctl->mod_flags |= MODCTL_SDT_PROBES_PROVIDED; in sdt_provide_module()
799 if (MOD_SDT_PROBES_PROVIDED(ctl)) { in sdt_provide_module()
800 sdt_probedesc_t *sdpd = ctl->mod_sdtdesc; in sdt_provide_module()
810 ctl->mod_sdtdesc = NULL; in sdt_provide_module()