Lines Matching refs:pi
41 struct proc_info pi; member
65 if (fi->pi.pid != TT.last_shown_pid) in print_info()
66 printf("%d\n", TT.last_shown_pid = fi->pi.pid); in print_info()
76 fi->pi.cmd, fi->pi.pid, getusername(fi->pi.uid), in print_info()
94 snprintf(toybuf, sizeof(toybuf), "/proc/%d/fdinfo/%s", fi->pi.pid, fi->fd); in fill_flags()
289 struct file_info *new_file_info(struct proc_info *pi, const char *fd) in new_file_info() argument
295 fi->pi = *pi; in new_file_info()
305 static void visit_symlink(struct proc_info *pi, char *name, char *path) in visit_symlink() argument
307 struct file_info *fi = new_file_info(pi, ""); in visit_symlink()
312 snprintf(toybuf, sizeof(toybuf), "/proc/%d/%s", pi->pid, path); in visit_symlink()
316 snprintf(toybuf, sizeof(toybuf), "/proc/%d/fd/%s", pi->pid, path); in visit_symlink()
329 static void visit_maps(struct proc_info *pi) in visit_maps() argument
338 snprintf(toybuf, sizeof(toybuf), "/proc/%d/maps", pi->pid); in visit_maps()
354 fi = new_file_info(pi, "mem"); in visit_maps()
363 static void visit_fds(struct proc_info *pi) in visit_fds() argument
368 snprintf(toybuf, sizeof(toybuf), "/proc/%d/fd", pi->pid); in visit_fds()
370 struct file_info *fi = new_file_info(pi, "NOFD"); in visit_fds()
378 visit_symlink(pi, NULL, de->d_name); in visit_fds()
386 struct proc_info pi; in lsof_pid() local
390 pi.pid = pid; in lsof_pid()
396 memcpy(pi.cmd, s+1, sizeof(pi.cmd)-1); in lsof_pid()
397 pi.cmd[sizeof(pi.cmd)-1] = 0; in lsof_pid()
398 if ((s = strrchr(pi.cmd, ')'))) *s = 0; in lsof_pid()
405 pi.uid = st->st_uid; in lsof_pid()
407 visit_symlink(&pi, "cwd", "cwd"); in lsof_pid()
408 visit_symlink(&pi, "rtd", "root"); in lsof_pid()
409 visit_symlink(&pi, "txt", "exe"); in lsof_pid()
410 visit_maps(&pi); in lsof_pid()
411 visit_fds(&pi); in lsof_pid()