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