aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS5
-rw-r--r--include/sys/vtimes.h1
-rw-r--r--manual/resource.texi61
-rw-r--r--resource/Makefile2
-rw-r--r--resource/sys/vtimes.h68
-rw-r--r--resource/vtimes.c45
-rw-r--r--sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist1
7 files changed, 48 insertions, 135 deletions
diff --git a/NEWS b/NEWS
index 6eb577a..3c1e509 100644
--- a/NEWS
+++ b/NEWS
@@ -42,6 +42,11 @@ Deprecated and removed features, and other changes affecting compatibility:
as a compatibility symbol (on those architectures which had it). All
programs should use gettimeofday or clock_gettime instead.
+* The deprecated <sys/vtimes.h> header and the function vtimes have been
+ removed. To support old binaries, the vtimes function continues to exist
+ as a compatibility symbol. Applications should use the getrlimit or
+ prlimit.
+
Changes to build and runtime requirements:
* On Linux, the system administrator needs to configure /dev/pts with
diff --git a/include/sys/vtimes.h b/include/sys/vtimes.h
deleted file mode 100644
index dd666ca..0000000
--- a/include/sys/vtimes.h
+++ /dev/null
@@ -1 +0,0 @@
-#include <resource/sys/vtimes.h>
diff --git a/manual/resource.texi b/manual/resource.texi
index 60e6d61..37462ab 100644
--- a/manual/resource.texi
+++ b/manual/resource.texi
@@ -121,67 +121,6 @@ scheduled).
@end table
@end deftp
-@code{vtimes} is a historical function that does some of what
-@code{getrusage} does. @code{getrusage} is a better choice.
-
-@code{vtimes} and its @code{vtimes} data structure are declared in
-@file{sys/vtimes.h}.
-@pindex sys/vtimes.h
-
-@deftypefun int vtimes (struct vtimes *@var{current}, struct vtimes *@var{child})
-@standards{???, sys/vtimes.h}
-@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
-@c Calls getrusage twice.
-
-@code{vtimes} reports resource usage totals for a process.
-
-If @var{current} is non-null, @code{vtimes} stores resource usage totals for
-the invoking process alone in the structure to which it points. If
-@var{child} is non-null, @code{vtimes} stores resource usage totals for all
-past children (which have terminated) of the invoking process in the structure
-to which it points.
-
-@deftp {Data Type} {struct vtimes}
-This data type contains information about the resource usage of a process.
-Each member corresponds to a member of the @code{struct rusage} data type
-described above.
-
-@table @code
-@item vm_utime
-User CPU time. Analogous to @code{ru_utime} in @code{struct rusage}
-@item vm_stime
-System CPU time. Analogous to @code{ru_stime} in @code{struct rusage}
-@item vm_idsrss
-Data and stack memory. The sum of the values that would be reported as
-@code{ru_idrss} and @code{ru_isrss} in @code{struct rusage}
-@item vm_ixrss
-Shared memory. Analogous to @code{ru_ixrss} in @code{struct rusage}
-@item vm_maxrss
-Maximent resident set size. Analogous to @code{ru_maxrss} in
-@code{struct rusage}
-@item vm_majflt
-Major page faults. Analogous to @code{ru_majflt} in @code{struct rusage}
-@item vm_minflt
-Minor page faults. Analogous to @code{ru_minflt} in @code{struct rusage}
-@item vm_nswap
-Swap count. Analogous to @code{ru_nswap} in @code{struct rusage}
-@item vm_inblk
-Disk reads. Analogous to @code{ru_inblk} in @code{struct rusage}
-@item vm_oublk
-Disk writes. Analogous to @code{ru_oublk} in @code{struct rusage}
-@end table
-@end deftp
-
-
-The return value is zero if the function succeeds; @code{-1} otherwise.
-
-
-
-@end deftypefun
-An additional historical function for examining resource usage,
-@code{vtimes}, is supported but not documented here. It is declared in
-@file{sys/vtimes.h}.
-
@node Limits on Resources
@section Limiting Resource Usage
@cindex resource limits
diff --git a/resource/Makefile b/resource/Makefile
index 62e0046..4165642 100644
--- a/resource/Makefile
+++ b/resource/Makefile
@@ -19,7 +19,7 @@ subdir := resource
include ../Makeconfig
-headers := sys/resource.h bits/resource.h sys/vlimit.h sys/vtimes.h \
+headers := sys/resource.h bits/resource.h sys/vlimit.h \
ulimit.h bits/types/struct_rusage.h
routines := getrlimit setrlimit getrlimit64 setrlimit64 getrusage ulimit \
diff --git a/resource/sys/vtimes.h b/resource/sys/vtimes.h
deleted file mode 100644
index 659f655..0000000
--- a/resource/sys/vtimes.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/* Copyright (C) 1991-2020 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_VTIMES_H
-#define _SYS_VTIMES_H 1
-
-#include <features.h>
-
-__BEGIN_DECLS
-
-/* This interface is obsolete; use `getrusage' instead. */
-
-/* Granularity of the `vm_utime' and `vm_stime' fields of a `struct vtimes'.
- (This is the frequency of the machine's power supply, in Hz.) */
-#define VTIMES_UNITS_PER_SECOND 60
-
-struct vtimes
-{
- /* User time used in units of 1/VTIMES_UNITS_PER_SECOND seconds. */
- int vm_utime;
- /* System time used in units of 1/VTIMES_UNITS_PER_SECOND seconds. */
- int vm_stime;
-
- /* Amount of data and stack memory used (kilobyte-seconds). */
- unsigned int vm_idsrss;
- /* Amount of text memory used (kilobyte-seconds). */
- unsigned int vm_ixrss;
- /* Maximum resident set size (text, data, and stack) (kilobytes). */
- int vm_maxrss;
-
- /* Number of hard page faults (i.e. those that required I/O). */
- int vm_majflt;
- /* Number of soft page faults (i.e. those serviced by reclaiming
- a page from the list of pages awaiting reallocation. */
- int vm_minflt;
-
- /* Number of times a process was swapped out of physical memory. */
- int vm_nswap;
-
- /* Number of input operations via the file system. Note: This
- and `ru_oublock' do not include operations with the cache. */
- int vm_inblk;
- /* Number of output operations via the file system. */
- int vm_oublk;
-};
-
-/* If CURRENT is not NULL, write statistics for the current process into
- *CURRENT. If CHILD is not NULL, write statistics for all terminated child
- processes into *CHILD. Returns 0 for success, -1 for failure. */
-extern int vtimes (struct vtimes * __current, struct vtimes * __child) __THROW;
-
-__END_DECLS
-
-#endif /* sys/vtimes.h */
diff --git a/resource/vtimes.c b/resource/vtimes.c
index 56eed4c..a18c818 100644
--- a/resource/vtimes.c
+++ b/resource/vtimes.c
@@ -16,12 +16,48 @@
<https://www.gnu.org/licenses/>. */
#include <stddef.h>
-#include <sys/vtimes.h>
#include <sys/resource.h>
+#include <shlib-compat.h>
+
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_33)
+
+/* Granularity of the `vm_utime' and `vm_stime' fields of a `struct vtimes'.
+ (This is the frequency of the machine's power supply, in Hz.) */
+# define VTIMES_UNITS_PER_SECOND 60
+
+struct vtimes
+{
+ /* User time used in units of 1/VTIMES_UNITS_PER_SECOND seconds. */
+ int vm_utime;
+ /* System time used in units of 1/VTIMES_UNITS_PER_SECOND seconds. */
+ int vm_stime;
+
+ /* Amount of data and stack memory used (kilobyte-seconds). */
+ unsigned int vm_idsrss;
+ /* Amount of text memory used (kilobyte-seconds). */
+ unsigned int vm_ixrss;
+ /* Maximum resident set size (text, data, and stack) (kilobytes). */
+ int vm_maxrss;
+
+ /* Number of hard page faults (i.e. those that required I/O). */
+ int vm_majflt;
+ /* Number of soft page faults (i.e. those serviced by reclaiming
+ a page from the list of pages awaiting reallocation. */
+ int vm_minflt;
+
+ /* Number of times a process was swapped out of physical memory. */
+ int vm_nswap;
+
+ /* Number of input operations via the file system. Note: This
+ and `ru_oublock' do not include operations with the cache. */
+ int vm_inblk;
+ /* Number of output operations via the file system. */
+ int vm_oublk;
+};
/* Return the number of 1/VTIMES_UNITS_PER_SECOND-second
units in the `struct timeval' TV. */
-#define TIMEVAL_TO_VTIMES(tv) \
+# define TIMEVAL_TO_VTIMES(tv) \
((tv.tv_sec * VTIMES_UNITS_PER_SECOND) \
+ (tv.tv_usec * VTIMES_UNITS_PER_SECOND / 1000000))
@@ -53,10 +89,13 @@ vtimes_one (struct vtimes *vt, enum __rusage_who who)
*CURRENT. If CHILD is not NULL, write statistics for all terminated child
processes into *CHILD. Returns 0 for success, -1 for failure. */
int
-vtimes (struct vtimes *current, struct vtimes *child)
+__vtimes (struct vtimes *current, struct vtimes *child)
{
if (vtimes_one (current, RUSAGE_SELF) < 0
|| vtimes_one (child, RUSAGE_CHILDREN) < 0)
return -1;
return 0;
}
+compat_symbol (libc, __vtimes, vtimes, GLIBC_2_0);
+
+#endif /* SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_33) */
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index e977715..66459ef 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1839,7 +1839,6 @@ GLIBC_2.33 vsscanf F
GLIBC_2.33 vswprintf F
GLIBC_2.33 vswscanf F
GLIBC_2.33 vsyslog F
-GLIBC_2.33 vtimes F
GLIBC_2.33 vwarn F
GLIBC_2.33 vwarnx F
GLIBC_2.33 vwprintf F