Lines Matching refs:P
52 getlwpcore(struct ps_prochandle *P, lwpid_t lwpid)
54 core_info_t *core = P->data;
72 getlwpfile(struct ps_prochandle *P, lwpid_t lwpid,
79 procfs_path, (int)P->status.pr_pid, (int)lwpid, fbase);
97 getlwpstatus(struct ps_prochandle *P, lwpid_t lwpid, lwpstatus_t *lps)
105 if (P->status.pr_lwp.pr_lwpid == lwpid) {
106 (void) memcpy(lps, &P->status.pr_lwp, sizeof (lwpstatus_t));
114 if (P->state != PS_DEAD) {
115 return (getlwpfile(P, lwpid, "lwpstatus",
123 if (P->data != NULL && (lwp = getlwpcore(P, lwpid)) != NULL) {
136 setlwpregs(struct ps_prochandle *P, lwpid_t lwpid, long cmd,
143 if (P->state != PS_STOP) {
156 * primary interfaces. Similarly, make sure to update P->status
159 if (P->status.pr_lwp.pr_lwpid == lwpid) {
160 Psync(P);
162 if (writev(P->ctlfd, iov, 2) == -1)
166 (void) memcpy(P->status.pr_lwp.pr_reg, rp, n);
168 (void) memcpy(&P->status.pr_lwp.pr_fpreg, rp, n);
178 procfs_path, (int)P->status.pr_pid, (int)lwpid);
191 Plwp_getregs(struct ps_prochandle *P, lwpid_t lwpid, prgregset_t gregs)
195 if (getlwpstatus(P, lwpid, &lps) == -1)
203 Plwp_setregs(struct ps_prochandle *P, lwpid_t lwpid, const prgregset_t gregs)
205 return (setlwpregs(P, lwpid, PCSREG, gregs, sizeof (prgregset_t)));
209 Plwp_getfpregs(struct ps_prochandle *P, lwpid_t lwpid, prfpregset_t *fpregs)
213 if (getlwpstatus(P, lwpid, &lps) == -1)
220 int Plwp_setfpregs(struct ps_prochandle *P, lwpid_t lwpid,
223 return (setlwpregs(P, lwpid, PCSFPREG, fpregs, sizeof (prfpregset_t)));
228 Plwp_getxregs(struct ps_prochandle *P, lwpid_t lwpid, prxregset_t *xregs)
232 if (P->state == PS_IDLE) {
237 if (P->state != PS_DEAD) {
238 if (P->state != PS_STOP) {
243 return (getlwpfile(P, lwpid, "xregs",
247 if ((lwp = getlwpcore(P, lwpid)) != NULL && lwp->lwp_xregs != NULL) {
258 Plwp_setxregs(struct ps_prochandle *P, lwpid_t lwpid, const prxregset_t *xregs)
260 return (setlwpregs(P, lwpid, PCSXREG, xregs, sizeof (prxregset_t)));
264 Plwp_getgwindows(struct ps_prochandle *P, lwpid_t lwpid, gwindows_t *gwins)
268 if (P->state == PS_IDLE) {
273 if (P->state != PS_DEAD) {
274 if (P->state != PS_STOP) {
279 return (getlwpfile(P, lwpid, "gwindows",
283 if ((lwp = getlwpcore(P, lwpid)) != NULL && lwp->lwp_gwins != NULL) {
295 Plwp_getasrs(struct ps_prochandle *P, lwpid_t lwpid, asrset_t asrs)
299 if (P->state == PS_IDLE) {
304 if (P->state != PS_DEAD) {
305 if (P->state != PS_STOP) {
310 return (getlwpfile(P, lwpid, "asrs", asrs, sizeof (asrset_t)));
313 if ((lwp = getlwpcore(P, lwpid)) != NULL && lwp->lwp_asrs != NULL) {
325 Plwp_setasrs(struct ps_prochandle *P, lwpid_t lwpid, const asrset_t asrs)
327 return (setlwpregs(P, lwpid, PCSASRS, asrs, sizeof (asrset_t)));
333 Plwp_getpsinfo(struct ps_prochandle *P, lwpid_t lwpid, lwpsinfo_t *lps)
337 if (P->state == PS_IDLE) {
342 if (P->state != PS_DEAD) {
343 return (getlwpfile(P, lwpid, "lwpsinfo",
347 if ((lwp = getlwpcore(P, lwpid)) != NULL) {
356 Plwp_getspymaster(struct ps_prochandle *P, lwpid_t lwpid, psinfo_t *ps)
360 if (P->state == PS_IDLE) {
365 if (getlwpstatus(P, lwpid, &lps) != 0)
373 if (P->state != PS_DEAD) {
374 return (getlwpfile(P, lwpid, "spymaster",
378 if (P->spymaster.pr_nlwp != 0) {
379 (void) memcpy(ps, &P->spymaster, sizeof (psinfo_t));
389 Plwp_stack(struct ps_prochandle *P, lwpid_t lwpid, stack_t *stkp)
393 if (P->state == PS_IDLE) {
398 if (P->state != PS_DEAD) {
400 if (getlwpfile(P, lwpid, "lwpstatus", &ls, sizeof (ls)) != 0)
405 if ((lwp = getlwpcore(P, lwpid)) == NULL)
411 if (P->status.pr_dmodel == PR_MODEL_NATIVE) {
412 if (Pread(P, stkp, sizeof (*stkp), addr) != sizeof (*stkp))
418 if (Pread(P, &stk32, sizeof (stk32), addr) != sizeof (stk32))
429 Plwp_main_stack(struct ps_prochandle *P, lwpid_t lwpid, stack_t *stkp)
434 if (P->state == PS_IDLE) {
439 if (P->state != PS_DEAD) {
440 if (getlwpfile(P, lwpid, "lwpstatus", &ls, sizeof (ls)) != 0)
444 if ((lwp = getlwpcore(P, lwpid)) == NULL)
456 if (P->status.pr_dmodel == PR_MODEL_NATIVE) {
457 if (Pread(P, stkp, sizeof (*stkp), addr) != sizeof (*stkp))
466 if (Pread(P, &stk32, sizeof (stk32), addr) != sizeof (stk32))
480 if (P->status.pr_dmodel == PR_MODEL_NATIVE) {
483 if (Pread(P, stkp, sizeof (*stkp),
491 if (Pread(P, &stk32, sizeof (stk32),
503 Plwp_alt_stack(struct ps_prochandle *P, lwpid_t lwpid, stack_t *stkp)
505 if (P->state == PS_IDLE) {
510 if (P->state != PS_DEAD) {
513 if (getlwpfile(P, lwpid, "lwpstatus", &ls, sizeof (ls)) != 0)
525 if ((lwp = getlwpcore(P, lwpid)) == NULL)