|
|
1.1 root 1: #include "ps.h"
2:
3: char *
4: printp(cp, fd, pp, up)
5: register char *cp; register struct proc *pp; register struct user *up;
6: {
7: char sstr[64], *args; int nargs = 56;
8: register time;
9:
10: if (fd < 0)
11: return cp;
12:
13: if (pp->p_flag & SPAGE)
14: sstr[0] = 'P';
15: else if (pp->p_stat == SSLEEP)
16: sstr[0] = "IS"[pp->p_clktim && pp->p_clktim < 20];
17: else
18: sstr[0] = "?swRLZT?"[minmax(pp->p_stat, 0, 7)];
19: sstr[1] = (pp->p_flag&SLOAD) ? ' ' : 'W';
20: sstr[2] = " N"[pp->p_nice > NZERO];
21: sstr[3] = 0;
22: if (Tflag) {
23: sstr[3] = ' ';
24: strcpy(sstr+4,ctime(&up->u_start)+4);
25: sstr[16] = 0;
26: }
27: time = (up->u_vm.vm_utime+up->u_vm.vm_stime)/60;
28:
29: if (uflag) {
30: cp += sprintf(cp, "%-7.7s %4.1f ",
31: getuname(pp->p_uid), 100.0*pp->p_pctcpu);
32: nargs -= 13;
33: }
34:
35: if (lflag) {
36: cp += sprintf(cp, "%4d %4d %5d %8x ",
37: (pp->p_dsize+pp->p_ssize)*NBPG/1024,
38: pp->p_rssize*NBPG/1024,
39: pp->p_ppid, (int)pp->p_wchan);
40: nargs -= 25;
41: }
42: args = getargs(fd, pp, up);
43: cp += sprintf(cp, "%5d %-5.5s %s %3d:%02d %.*s\n",
44: pp->p_pid, gettty(up->u_ttyino), sstr,
45: time/60, time%60, nargs, args);
46:
47: if (fflag)
48: cp = fdprint(cp, pp, up);
49:
50: close(fd);
51: return cp;
52: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.