* Copyright (c) 1980 Regents of the University of California.
* All rights reserved. The Berkeley software License Agreement
* specifies the terms and conditions for redistribution.
static char sccsid
[] = "@(#)vtimes.c 5.1 (Berkeley) %G%";
#include <sys/resource.h>
* Backwards compatible vtimes.
int vm_utime
; /* user time (60'ths) */
int vm_stime
; /* system time (60'ths) */
/* divide next two by utime+stime to get averages */
unsigned vm_idsrss
; /* integral of d+s rss */
unsigned vm_ixrss
; /* integral of text rss */
int vm_maxrss
; /* maximum rss */
int vm_majflt
; /* major page faults */
int vm_minflt
; /* minor page faults */
int vm_nswap
; /* number of swaps */
int vm_inblk
; /* block reads */
int vm_oublk
; /* block writes */
register struct vtimes
*par
, *chi
;
if (getrusage(RUSAGE_SELF
, &ru
) < 0)
if (getrusage(RUSAGE_CHILDREN
, &ru
) < 0)
register struct rusage
*aru
;
register struct vtimes
*avt
;
avt
->vm_utime
= scale60(&aru
->ru_utime
);
avt
->vm_stime
= scale60(&aru
->ru_stime
);
avt
->vm_idsrss
= ((aru
->ru_idrss
+aru
->ru_isrss
) / 100) * 60;
avt
->vm_ixrss
= aru
->ru_ixrss
/ 100 * 60;
avt
->vm_maxrss
= aru
->ru_maxrss
;
avt
->vm_majflt
= aru
->ru_majflt
;
avt
->vm_minflt
= aru
->ru_minflt
;
avt
->vm_nswap
= aru
->ru_nswap
;
avt
->vm_inblk
= aru
->ru_inblock
;
avt
->vm_oublk
= aru
->ru_oublock
;
register struct timeval
*tvp
;
return (tvp
->tv_sec
* 60 + tvp
->tv_usec
/ 16667);