Initial revision
[kopensolaris-gnu/glibc.git] / resource / sys / vtimes.h
1 /* Copyright (C) 1991 Free Software Foundation, Inc.
2 This file is part of the GNU C Library.
3
4 The GNU C Library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Library General Public License as
6 published by the Free Software Foundation; either version 2 of the
7 License, or (at your option) any later version.
8
9 The GNU C Library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 Library General Public License for more details.
13
14 You should have received a copy of the GNU Library General Public
15 License along with the GNU C Library; see the file COPYING.LIB.  If
16 not, write to the Free Software Foundation, Inc., 675 Mass Ave,
17 Cambridge, MA 02139, USA.  */
18
19 #ifndef _SYS_VTIMES_H
20
21 #define _SYS_VTIMES_H   1
22 #include <features.h>
23
24 /* This interface is obsolete; use `getrusage' instead.  */
25
26 /* Granularity of the `vm_utime' and `vm_stime' fields of a `struct vtimes'.
27    (This is the frequency of the machine's power supply, in Hz.)  */
28 #define VTIMES_UNITS_PER_SECOND 60
29
30 struct vtimes
31   {
32     /* User time used in units of 1/VTIMES_UNITS_PER_SECOND seconds.  */
33     int vm_utime;
34     /* System time used in units of 1/VTIMES_UNITS_PER_SECOND seconds.  */
35     int vm_stime;
36
37     /* Amount of data and stack memory used (kilobyte-seconds).  */
38     unsigned int vm_idsrss;
39     /* Amount of text memory used (kilobyte-seconds).  */
40     unsigned int vm_ixrss;
41     /* Maximum resident set size (text, data, and stack) (kilobytes).  */
42     int vm_maxrss;
43
44     /* Number of hard page faults (i.e. those that required I/O).  */
45     int vm_majflt;
46     /* Number of soft page faults (i.e. those serviced by reclaiming
47        a page from the list of pages awaiting reallocation.  */
48     int vm_minflt;
49
50     /* Number of times a process was swapped out of physical memory.  */
51     int vm_nswap;
52
53     /* Number of input operations via the file system.  Note: This
54        and `ru_outblock' do not include operations with the cache.  */
55     int vm_inblk;
56     /* Number of output operations via the file system.  */
57     int vm_outblk;
58   };
59
60 /* If CURRENT is not NULL, write statistics for the current process into
61    *CURRENT.  If CHILD is not NULL, write statistics for all terminated child
62    processes into *CHILD.  Returns 0 for success, -1 for failure.  */
63 int EXFUN(vtimes, (struct vtimes *__current, struct vtimes *__child));
64
65 #endif  /* sys/vtimes.h  */