Lines Matching defs:rdap

62 rd_delete(rd_agent_t *rdap)
65 if (rdap->rda_procstat != NULL)
66 procstat_close(rdap->rda_procstat);
67 free(rdap);
93 rd_event_addr(rd_agent_t *rdap, rd_event_e event, rd_notify_t *notify)
97 DPRINTF("%s rdap %p event %d notify %p\n", __func__, rdap, event,
106 notify->u.bptaddr = rdap->rda_preinit_addr;
110 notify->u.bptaddr = rdap->rda_postinit_addr;
114 notify->u.bptaddr = rdap->rda_dlactivity_addr;
124 rd_event_enable(rd_agent_t *rdap __unused, int onoff)
132 rd_event_getmsg(rd_agent_t *rdap __unused, rd_event_msg_t *msg)
156 rd_loadobj_iter(rd_agent_t *rdap, rl_iter_f *cb, void *clnt_data)
169 if ((kves = kinfo_getvmmap(proc_getpid(rdap->rda_php), &cnt)) == NULL) {
232 rd_agent_t *rdap;
234 rdap = malloc(sizeof(*rdap));
235 if (rdap == NULL)
238 memset(rdap, 0, sizeof(rd_agent_t));
239 rdap->rda_php = php;
240 rdap->rda_procstat = procstat_open_sysctl();
242 if (rd_reset(rdap) != RD_OK) {
243 rd_delete(rdap);
244 rdap = NULL;
246 return (rdap);
250 rd_objpad_enable(rd_agent_t *rdap, size_t padsize)
254 (void)rdap;
261 rd_plt_resolution(rd_agent_t *rdap, uintptr_t pc, struct proc *proc,
266 (void)rdap;
276 rtld_syms(rd_agent_t *rdap, const char *rtldpath, u_long base)
323 rdap->rda_preinit_addr = sym.st_value + base;
324 rdap->rda_dlactivity_addr = sym.st_value + base;
326 rdap->rda_postinit_addr = sym.st_value + base;
330 if (rdap->rda_preinit_addr != 0 &&
331 rdap->rda_postinit_addr != 0 &&
332 rdap->rda_dlactivity_addr != 0)
344 rd_reset(rd_agent_t *rdap)
359 kp = procstat_getprocs(rdap->rda_procstat, KERN_PROC_PID,
360 proc_getpid(rdap->rda_php), &count);
365 auxv = procstat_getauxv(rdap->rda_procstat, kp, &count);
380 kve = procstat_getvmmap(rdap->rda_procstat, kp, &count);
392 if (rtld_syms(rdap, rtldpath, base) != 0)
399 procstat_freevmmap(rdap->rda_procstat, kve);
401 procstat_freeauxv(rdap->rda_procstat, auxv);
403 procstat_freeprocs(rdap->rda_procstat, kp);