Lines Matching refs:procp

68 get_ldbase(struct ps_prochandle *procp)
78 EC_SWORD(procp->pp_pid));
91 procp->pp_auxvp = auxvptr;
95 if (procp->pp_dmodel == PR_MODEL_ILP32)
105 if (procp->pp_dmodel == PR_MODEL_ILP32)
106 procp->pp_ldsobase =
111 procp->pp_ldsobase = auxvp->a_un.a_val;
114 if (procp->pp_dmodel == PR_MODEL_ILP32)
115 procp->pp_execphdr =
120 procp->pp_execphdr = auxvp->a_un.a_val;
127 ps_init(int pctlfd, int pstatusfd, pid_t pid, struct ps_prochandle *procp)
134 procp->pp_pid = pid;
135 procp->pp_ctlfd = pctlfd;
136 procp->pp_statusfd = pstatusfd;
139 EC_SWORD(procp->pp_pid));
140 if ((procp->pp_mapfd = open(procname, O_RDONLY)) == -1)
144 EC_SWORD(procp->pp_pid));
145 if ((procp->pp_asfd = open(procname, O_RDWR)) == -1)
148 if (ps_pdmodel(procp, &procp->pp_dmodel) != PS_OK)
152 if (procp->pp_dmodel == PR_MODEL_LP64)
155 get_ldbase(procp);
157 (void) load_map(procp, (caddr_t)procp->pp_ldsobase,
158 &(procp->pp_ldsomap));
159 procp->pp_ldsomap.mi_addr += procp->pp_ldsobase;
160 procp->pp_ldsomap.mi_end += procp->pp_ldsobase;
161 procp->pp_ldsomap.mi_name = "<procfs: interp>";
163 (void) load_map(procp, (caddr_t)procp->pp_execphdr,
164 &(procp->pp_execmap));
165 procp->pp_execmap.mi_name = "<procfs: exec>";
167 procp->pp_breakpoints = NULL;
168 procp->pp_flags = FLG_PP_PACT | FLG_PP_PLTSKIP;
169 procp->pp_lmaplist.ml_head = NULL;
170 procp->pp_lmaplist.ml_tail = NULL;
171 if ((procp->pp_rap = rd_new(procp)) == NULL) {
175 (void) rd_event_enable(procp->pp_rap, 1);
187 if (writev(procp->pp_ctlfd, piov, 2) == -1)
197 if (rd_event_addr(procp->pp_rap, RD_PREINIT, &rd_notify) == RD_OK) {
198 if (set_breakpoint(procp, rd_notify.u.bptaddr,
207 if (rd_event_addr(procp->pp_rap, RD_POSTINIT, &rd_notify) == RD_OK) {
208 if (set_breakpoint(procp, rd_notify.u.bptaddr,
217 if (rd_event_addr(procp->pp_rap, RD_DLACTIVITY, &rd_notify) == RD_OK) {
218 if (set_breakpoint(procp, rd_notify.u.bptaddr,