|
|
1.1 ! root 1: /* times.c 4.2 83/06/02 */ ! 2: ! 3: #include <sys/time.h> ! 4: #include <sys/resource.h> ! 5: ! 6: /* ! 7: * Backwards compatible times. ! 8: */ ! 9: struct tms { ! 10: int tms_utime; /* user time */ ! 11: int tms_stime; /* system time */ ! 12: int tms_cutime; /* user time, children */ ! 13: int tms_cstime; /* system time, children */ ! 14: }; ! 15: ! 16: times(tmsp) ! 17: register struct tms *tmsp; ! 18: { ! 19: struct rusage ru; ! 20: ! 21: if (getrusage(RUSAGE_SELF, &ru) < 0) ! 22: return (-1); ! 23: tmsp->tms_utime = scale60(&ru.ru_utime); ! 24: tmsp->tms_stime = scale60(&ru.ru_stime); ! 25: if (getrusage(RUSAGE_CHILDREN, &ru) < 0) ! 26: return (-1); ! 27: tmsp->tms_cutime = scale60(&ru.ru_utime); ! 28: tmsp->tms_cstime = scale60(&ru.ru_stime); ! 29: return (0); ! 30: } ! 31: ! 32: static ! 33: scale60(tvp) ! 34: register struct timeval *tvp; ! 35: { ! 36: ! 37: return (tvp->tv_sec * 60 + tvp->tv_usec / 16667); ! 38: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.