Lines Matching defs:P
54 try_exec(struct ps_prochandle *P, const char *cwd, const char *path, char *buf,
66 (void) Pfindobj(P, buf, buf, PATH_MAX);
83 Pfindexec(struct ps_prochandle *P, const char *aout,
95 if (P->execname)
96 return (P->execname); /* Already found */
107 if (try_exec(P, ".", aout, buf, isexec, isdata))
130 if ((addr = Pgetauxval(P, AT_SUN_EXECNAME)) != (uintptr_t)-1L &&
131 Pread_string(P, path, sizeof (path), (off_t)addr) > 0) {
133 const psinfo_t *pi = Ppsinfo(P);
135 if (try_exec(P, cwd, path, buf, isexec, isdata))
139 try_exec(P, cwd, p, buf, isexec, isdata))
155 if (try_exec(P, zpath, p, buf, isexec, isdata))
164 if (Ppsinfo(P) != NULL) {
165 (void) strncpy(path, P->psinfo.pr_psargs, PRARGSZ);
171 if (try_exec(P, cwd, path, buf, isexec, isdata))
175 try_exec(P, cwd, p, buf, isexec, isdata))
183 if (P->psinfo.pr_argv != NULL &&
184 Pread(P, &addr, sizeof (addr), P->psinfo.pr_argv) != -1 &&
185 Pread_string(P, path, sizeof (path), (off_t)addr) > 0) {
187 if (try_exec(P, cwd, path, buf, isexec, isdata))
191 try_exec(P, cwd, p, buf, isexec, isdata))
199 if (Pgetenv(P, "PATH", cwd, sizeof (cwd)) != NULL) {
206 (void) strncpy(path, P->psinfo.pr_psargs, PRARGSZ);
213 P->psinfo.pr_fname, strlen(P->psinfo.pr_fname)) != 0)
214 (void) strcpy(path, P->psinfo.pr_fname);
226 if (try_exec(P, p, path, buf, isexec, isdata))
235 if ((P->execname = strdup(buf)) == NULL)
238 return (P->execname);
245 Pexecname(struct ps_prochandle *P, char *buf, size_t buflen)
247 if (P->execname != NULL) {
248 (void) strncpy(buf, P->execname, buflen);
252 return (P->ops.pop_execname(P, buf, buflen, P->data));