Lines Matching +full:libelf +full:- +full:dev

39 #include <libelf.h>
43 * is through the DTrace helper pseudo-device node in /devices; there is
44 * no /dev link. Because of this, USDT providers and helper actions don't
45 * work inside of non-global zones. This issue was addressed by adding
46 * the /dev and having this initialization code use that /dev link. If the
47 * /dev link doesn't exist it falls back to looking for the /devices node
58 static const char *devnamep = "/dev/dtrace/helper";
85 if (fmt[strlen(fmt) - 1] != '\n') in dbg_printf()
122 if (dlinfo(RTLD_SELF, RTLD_DI_LINKMAP, &lmp) == -1 || lmp == NULL) { in dtrace_dof_init()
128 if (dlinfo(RTLD_SELF, RTLD_DI_LMID, &lmid) == -1) { in dtrace_dof_init()
134 if ((modname = strrchr(lmp->l_name, '/')) == NULL) in dtrace_dof_init()
135 modname = lmp->l_name; in dtrace_dof_init()
139 if (dof->dofh_ident[DOF_ID_MAG0] != DOF_MAG_MAG0 || in dtrace_dof_init()
140 dof->dofh_ident[DOF_ID_MAG1] != DOF_MAG_MAG1 || in dtrace_dof_init()
141 dof->dofh_ident[DOF_ID_MAG2] != DOF_MAG_MAG2 || in dtrace_dof_init()
142 dof->dofh_ident[DOF_ID_MAG3] != DOF_MAG_MAG3) { in dtrace_dof_init()
148 elf = (void *)lmp->l_base; in dtrace_dof_init()
150 elf = (void *)lmp->l_addr; in dtrace_dof_init()
155 dh.dofhp_addr = elf->e_type == ET_DYN ? (uintptr_t) lmp->l_base : 0; in dtrace_dof_init()
158 dh.dofhp_addr = elf->e_type == ET_DYN ? (uintptr_t) lmp->l_addr : 0; in dtrace_dof_init()
192 if ((gen = ioctl(fd, DTRACEHIOC_ADDDOF, &dh)) == -1) in dtrace_dof_init()
220 if ((gen = ioctl(fd, DTRACEHIOC_REMOVE, &gen)) == -1) in dtrace_dof_fini()