Annotation of researchv10no/cmd/ops/printp.c, revision 1.1.1.1

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:                sprintf(sstr+16, " %x,%x", up->u_ttydev, up->u_ttyino);
                     27:        }
                     28:        time = (up->u_vm.vm_utime+up->u_vm.vm_stime)/60;
                     29: 
                     30:        if (uflag) {
                     31:                cp += sprintf(cp, "%-7.7s %4.1f ",
                     32:                        getuname(pp->p_uid), 100.0*pp->p_pctcpu);
                     33:                nargs -= 13;
                     34:        }
                     35: 
                     36:        if (lflag) {
                     37:                cp += sprintf(cp, "%4d %4d %5d %8x ",
                     38:                        (pp->p_dsize+pp->p_ssize)*NBPG/1024,
                     39:                        pp->p_rssize*NBPG/1024,
                     40:                        pp->p_ppid, (int)pp->p_wchan);
                     41:                nargs -= 25;
                     42:        }
                     43:        args = getargs(fd, pp, up);
                     44:        cp += sprintf(cp, "%5d %-5.5s %s %3d:%02d %.*s\n",
                     45:                pp->p_pid, gettty(up->u_ttydev, up->u_ttyino), sstr,
                     46:                time/60, time%60, nargs, args);
                     47: 
                     48:        if (fflag)
                     49:                cp = fdprint(cp, pp, up);
                     50: 
                     51:        close(fd);
                     52:        return cp;
                     53: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.