Annotation of 42BSD/lib/libc/compat-4.1/vtimes.c, revision 1.1

1.1     ! root        1: /*     vtimes.c        4.1     83/05/31        */
        !             2: 
        !             3: #include <sys/time.h>
        !             4: #include <sys/resource.h>
        !             5: 
        !             6: /*
        !             7:  * Backwards compatible vtimes.
        !             8:  */
        !             9: struct vtimes {
        !            10:        int     vm_utime;               /* user time (60'ths) */
        !            11:        int     vm_stime;               /* system time (60'ths) */
        !            12:        /* divide next two by utime+stime to get averages */
        !            13:        unsigned vm_idsrss;             /* integral of d+s rss */
        !            14:        unsigned vm_ixrss;              /* integral of text rss */
        !            15:        int     vm_maxrss;              /* maximum rss */
        !            16:        int     vm_majflt;              /* major page faults */
        !            17:        int     vm_minflt;              /* minor page faults */
        !            18:        int     vm_nswap;               /* number of swaps */
        !            19:        int     vm_inblk;               /* block reads */
        !            20:        int     vm_oublk;               /* block writes */
        !            21: };
        !            22: 
        !            23: vtimes(par, chi)
        !            24:        register struct vtimes *par, *chi;
        !            25: {
        !            26:        struct rusage ru;
        !            27: 
        !            28:        if (par) {
        !            29:                if (getrusage(RUSAGE_SELF, &ru) < 0)
        !            30:                        return (-1);
        !            31:                getvtimes(&ru, par);
        !            32:        }
        !            33:        if (chi) {
        !            34:                if (getrusage(RUSAGE_CHILDREN, &ru) < 0)
        !            35:                        return (-1);
        !            36:                getvtimes(&ru, chi);
        !            37:        }
        !            38:        return (0);
        !            39: }
        !            40: 
        !            41: static
        !            42: getvtimes(aru, avt)
        !            43:        register struct rusage *aru;
        !            44:        register struct vtimes *avt;
        !            45: {
        !            46: 
        !            47:        avt->vm_utime = scale60(&aru->ru_utime);
        !            48:        avt->vm_stime = scale60(&aru->ru_stime);
        !            49:        avt->vm_idsrss = ((aru->ru_idrss+aru->ru_isrss) / 100) * 60;
        !            50:        avt->vm_ixrss = aru->ru_ixrss / 100 * 60;
        !            51:        avt->vm_maxrss = aru->ru_maxrss;
        !            52:        avt->vm_majflt = aru->ru_majflt;
        !            53:        avt->vm_minflt = aru->ru_minflt;
        !            54:        avt->vm_nswap = aru->ru_nswap;
        !            55:        avt->vm_inblk = aru->ru_inblock;
        !            56:        avt->vm_oublk = aru->ru_oublock;
        !            57: }
        !            58: 
        !            59: static
        !            60: scale60(tvp)
        !            61:        register struct timeval *tvp;
        !            62: {
        !            63: 
        !            64:        return (tvp->tv_sec * 60 + tvp->tv_usec / 16667);
        !            65: }

unix.superglobalmegacorp.com

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