/titanic_41/usr/src/lib/libtnfctl/ |
H A D | prb_rtld.c | 57 static prb_status_t prb_rtld_setup(prb_proc_ctl_t *proc_p, boolean_t *synced); 58 static prb_status_t prb_rtld_wait(prb_proc_ctl_t *proc_p); 59 static prb_status_t bpt(prb_proc_ctl_t *proc_p, uintptr_t addr); 60 static prb_status_t unbpt(prb_proc_ctl_t *proc_p, uintptr_t addr); 73 prb_rtld_stalk(prb_proc_ctl_t *proc_p) in prb_rtld_stalk() argument 79 if (!proc_p->bptaddr) { in prb_rtld_stalk() 83 if (proc_p->dbgaddr == 0) { in prb_rtld_stalk() 89 prbstat = prb_proc_read(proc_p, proc_p->dbgaddr, in prb_rtld_stalk() 97 prbstat = prb_proc_read(proc_p, dentry.d_un.d_ptr, in prb_rtld_stalk() 102 proc_p->bptaddr = r_dbg.r_brk; in prb_rtld_stalk() [all …]
|
H A D | prb_proc.h | 106 void prb_dbgaddr(prb_proc_ctl_t *proc_p, uintptr_t dbgaddr); 119 typedef int prb_loadobj_f(prb_proc_ctl_t *proc_p, const prb_loadobj_t *obj, 122 prb_status_t prb_mainobj_get(prb_proc_ctl_t *proc_p, int *objfd, 127 pid_t prb_proc_pid_get(prb_proc_ctl_t *proc_p); 130 prb_status_t prb_rtld_sync_if_needed(prb_proc_ctl_t *proc_p); 131 prb_status_t prb_rtld_stalk(prb_proc_ctl_t *proc_p); 132 prb_status_t prb_rtld_unstalk(prb_proc_ctl_t *proc_p); 133 prb_status_t prb_rtld_advance(prb_proc_ctl_t *proc_p); 138 prb_status_t prb_proc_close(prb_proc_ctl_t *proc_p); 139 prb_status_t prb_proc_stop(prb_proc_ctl_t *proc_p); [all …]
|
H A D | continue.c | 63 prb_proc_ctl_t *proc_p; in tnfctl_continue() local 70 proc_p = hndl->proc_p; in tnfctl_continue() 126 prbstat = prb_proc_get_r0_r1(proc_p, in tnfctl_continue() 174 prb_proc_ctl_t *proc_p; in _tnfctl_continue() local 177 proc_p = hndl->proc_p; in _tnfctl_continue() 187 prbstat = prb_proc_cont(proc_p); in _tnfctl_continue() 194 prbstat = prb_proc_wait(proc_p, B_TRUE, oldmask); in _tnfctl_continue() 198 prbstat2 = prb_proc_stop(proc_p); in _tnfctl_continue() 217 prbstat = prb_proc_state(proc_p, &state); in _tnfctl_continue() 224 prbstat = prb_rtld_advance(proc_p); in _tnfctl_continue() [all …]
|
H A D | open.c | 58 prb_proc_ctl_t *proc_p = NULL; in tnfctl_exec_open() local 64 envp, &proc_p); in tnfctl_exec_open() 72 (void) prb_proc_close(proc_p); in tnfctl_exec_open() 76 hdl->proc_p = proc_p; in tnfctl_exec_open() 94 prb_dbgaddr(proc_p, dbgaddr); in tnfctl_exec_open() 97 prbstat = prb_rtld_sync_if_needed(proc_p); in tnfctl_exec_open() 117 (void) prb_proc_close(proc_p); in tnfctl_exec_open() 134 prb_proc_ctl_t *proc_p = NULL; in tnfctl_pid_open() local 139 prexstat = attach_pid(pid, &proc_p); in tnfctl_pid_open() 147 (void) prb_proc_close(proc_p); in tnfctl_pid_open() [all …]
|
H A D | prb_proc.c | 69 prb_proc_ctl_t *proc_p; in prb_proc_open_general() local 86 proc_p = calloc(1, sizeof (*proc_p)); in prb_proc_open_general() 87 if (proc_p == NULL) in prb_proc_open_general() 89 proc_p->procfd = retval; in prb_proc_open_general() 90 proc_p->pid = pid; in prb_proc_open_general() 91 *proc_pp = proc_p; in prb_proc_open_general() 131 prb_proc_close(prb_proc_ctl_t *proc_p) in prb_proc_close() argument 135 if (proc_p == NULL) in prb_proc_close() 138 if (close(proc_p->procfd) == -1) { in prb_proc_close() 143 free(proc_p); in prb_proc_close() [all …]
|
H A D | prb_child.c | 212 prb_dbgaddr(prb_proc_ctl_t *proc_p, uintptr_t dbgaddr) in prb_dbgaddr() argument 214 proc_p->dbgaddr = dbgaddr; in prb_dbgaddr() 224 prb_proc_ctl_t *proc_p, *oldproc_p; in sync_child() local 233 proc_p = *proc_pp; in sync_child() 235 prbstat = prb_proc_stop(proc_p); in sync_child() 243 prbstat = prb_proc_setrlc(proc_p, B_FALSE); in sync_child() 247 prbstat = prb_proc_setklc(proc_p, B_TRUE); in sync_child() 252 prbstat = prb_proc_exit(proc_p, SYS_execve, PRB_SYS_ADD); in sync_child() 256 prbstat = prb_proc_entry(proc_p, SYS_exit, PRB_SYS_ADD); in sync_child() 264 prbstat = prb_proc_cont(proc_p); in sync_child() [all …]
|
H A D | close.c | 53 prb_proc_ctl_t *proc_p; in tnfctl_close() local 93 proc_p = hdl->proc_p; in tnfctl_close() 94 if (proc_p == NULL) { in tnfctl_close() 103 prbstat = prb_proc_setklc(proc_p, B_TRUE); in tnfctl_close() 106 prbstat = prb_proc_setrlc(proc_p, B_FALSE); in tnfctl_close() 111 prbstat = prb_proc_setklc(proc_p, B_FALSE); in tnfctl_close() 114 prbstat = prb_proc_setrlc(proc_p, B_TRUE); in tnfctl_close() 119 prbstat = prb_proc_setklc(proc_p, B_FALSE); in tnfctl_close() 122 prbstat = prb_proc_setrlc(proc_p, B_FALSE); in tnfctl_close() 129 prbstat = prb_proc_close(proc_p); in tnfctl_close() [all …]
|
H A D | prb_lmap.c | 49 prb_loadobj_iter(prb_proc_ctl_t *proc_p, prb_loadobj_f *obj_func, void *cd) in prb_loadobj_iter() argument 62 if (proc_p->dbgaddr == 0) { in prb_loadobj_iter() 68 prbstat = prb_proc_read(proc_p, proc_p->dbgaddr, &dentry, in prb_loadobj_iter() 76 prbstat = prb_proc_read(proc_p, dentry.d_un.d_ptr, in prb_loadobj_iter() 95 prbstat = prb_proc_read(proc_p, lmapaddr, &lmap, sizeof (lmap)); in prb_loadobj_iter() 106 loadobj.objfd = ioctl(proc_p->procfd, PIOCOPENM, &lmap.l_addr); in prb_loadobj_iter() 108 (void) prb_proc_readstr(proc_p, (uintptr_t) lmap.l_name, in prb_loadobj_iter() 110 retval = obj_func(proc_p, &loadobj, cd); in prb_loadobj_iter() 130 prb_mainobj_get(prb_proc_ctl_t *proc_p, int *objfd, uintptr_t *baseaddr) in prb_mainobj_get() argument 136 procfd = proc_p->procfd; in prb_mainobj_get()
|
H A D | util.c | 144 hndl->targ_pid = hndl->p_getpid(hndl->proc_p); in _tnfctl_set_state() 207 miscstat = hndl->p_read(hndl->proc_p, hndl->thread_sync, in find_test_func() 244 miscstat = hndl->p_read(hndl->proc_p, hndl->trace_error, in check_trace_error() 250 miscstat = hndl->p_read(hndl->proc_p, trace_error_ptr, &trace_error_rec, in check_trace_error() 321 miscstat = hndl->p_read(hndl->proc_p, temp_addr, &hndl->memseg_p, in find_target_syms() 336 miscstat = hndl->p_read(hndl->proc_p, temp_addr, &hndl->nonthread_test, in find_target_syms() 346 miscstat = hndl->p_read(hndl->proc_p, temp_addr, &hndl->thread_test, in find_target_syms() 498 miscstat = hndl->p_write(hndl->proc_p, name_addr, path, in _tnfctl_create_tracefile() 502 miscstat = hndl->p_write(hndl->proc_p, size_addr, &outsize, in _tnfctl_create_tracefile() 560 miscstat = hndl->p_read(hndl->proc_p, min_addr, &minoutsize, in find_trace_file_info() [all …]
|
H A D | prb_proc_int.h | 92 prb_status_t prb_proc_prstop(prb_proc_ctl_t *proc_p); 95 prb_status_t prb_proc_tracebpt(prb_proc_ctl_t *proc_p, boolean_t bpt); 96 prb_status_t prb_proc_istepbpt(prb_proc_ctl_t *proc_p); 97 prb_status_t prb_proc_clrbptflt(prb_proc_ctl_t *proc_p); 100 prb_status_t prb_proc_readstr(prb_proc_ctl_t *proc_p, uintptr_t addr,
|
H A D | tnfctl_int.h | 127 void *proc_p; /* proc handle */ member 258 int _tnfctl_read_targ(void *proc_p, uintptr_t addr, void *buf, size_t size); 259 int _tnfctl_write_targ(void *proc_p, uintptr_t addr, void *buf, size_t size); 260 int _tnfctl_loadobj_iter(void *proc_p, tnfctl_ind_obj_f *func, 262 pid_t _tnfctl_pid_get(void *proc_p);
|
H A D | probes.c | 110 miscstat = hndl->p_obj_iter(hndl->proc_p, per_loadobj, hndl); in _tnfctl_lmap_update() 350 per_loadobj(void *proc_p, const tnfctl_ind_obj_info_t *obj, void *cd) in per_loadobj() argument 533 miscstat = hndl->p_read(hndl->proc_p, addr, in read_a_probe() 587 miscstat = hndl->p_write(hndl->proc_p, addr, in read_a_probe() 638 miscstat = hndl->p_write(hndl->proc_p, probe_p->addr + in link_targ_obj_probes() 657 miscstat = hndl->p_write(hndl->proc_p, next_addr, in link_targ_obj_probes() 671 miscstat = hndl->p_write(hndl->proc_p, probe_p->addr + in link_targ_obj_probes() 728 miscstat = hndl->p_write(hndl->proc_p, next_addr, in unlink_targ_obj_probes() 761 miscstat = hndl->p_write(hndl->proc_p, in _tnfctl_flush_a_probe()
|
H A D | targmem.c | 55 miscstat = hndl->p_read(hndl->proc_p, hndl->memseg_p, &memseg, in _tnfctl_targmem_alloc() 64 miscstat = hndl->p_write(hndl->proc_p, hndl->memseg_p, in _tnfctl_targmem_alloc()
|
H A D | elf.c | 92 prbstat = prb_mainobj_get(hndl->proc_p, &objfd, &baseaddr); in _tnfctl_elf_dbgent() 120 miscstat = hndl->p_read(hndl->proc_p, dynamic_addr, dynam_tab, in _tnfctl_elf_dbgent()
|
H A D | comb.c | 351 miscstat = hndl->p_read(hndl->proc_p, addr, targ_p, size); in iscomb() 644 miscstat = hndl->p_write(hndl->proc_p, addr, buffer_p, size); in build()
|
H A D | internal.c | 113 hdl->proc_p = (void *) dbgaddr; in tnfctl_internal_open()
|