Lines Matching refs:pi
44 struct proc_info pi; member
87 if (fi->pi.pid != TT.last_shown_pid) in print_info()
88 printf("%d\n", (TT.last_shown_pid = fi->pi.pid)); in print_info()
92 fi->pi.cmd, fi->pi.pid, fi->pi.user, in print_info()
109 snprintf(toybuf, sizeof(toybuf), "/proc/%d/fdinfo/%s", fi->pi.pid, fi->fd); in fill_flags()
287 struct file_info *new_file_info(struct proc_info *pi, const char* fd) in new_file_info() argument
293 fi->pi = *pi; in new_file_info()
303 static void visit_symlink(struct proc_info *pi, char* name, char* path) in visit_symlink() argument
305 struct file_info *fi = new_file_info(pi, ""); in visit_symlink()
310 snprintf(toybuf, sizeof(toybuf), "/proc/%d/%s", pi->pid, path); in visit_symlink()
314 snprintf(toybuf, sizeof(toybuf), "/proc/%d/fd/%s", pi->pid, path); in visit_symlink()
327 static void visit_maps(struct proc_info *pi) in visit_maps() argument
336 snprintf(toybuf, sizeof(toybuf), "/proc/%d/maps", pi->pid); in visit_maps()
352 fi = new_file_info(pi, "mem"); in visit_maps()
361 static void visit_fds(struct proc_info *pi) in visit_fds() argument
366 snprintf(toybuf, sizeof(toybuf), "/proc/%d/fd", pi->pid); in visit_fds()
368 struct file_info *fi = new_file_info(pi, "NOFD"); in visit_fds()
376 visit_symlink(pi, NULL, de->d_name); in visit_fds()
384 struct proc_info pi; in lsof_pid() local
395 strcpy(pi.cmd, "?"); in lsof_pid()
404 snprintf(pi.cmd, sizeof(pi.cmd), "%s", open_paren + 1); in lsof_pid()
409 pi.pid = pid; in lsof_pid()
417 snprintf(pi.user, sizeof(pi.user), "%s", pw->pw_name); in lsof_pid()
418 } else snprintf(pi.user, sizeof(pi.user), "%u", (unsigned)sb.st_uid); in lsof_pid()
421 visit_symlink(&pi, "cwd", "cwd"); in lsof_pid()
422 visit_symlink(&pi, "rtd", "root"); in lsof_pid()
423 visit_symlink(&pi, "txt", "exe"); in lsof_pid()
424 visit_maps(&pi); in lsof_pid()
425 visit_fds(&pi); in lsof_pid()