diff --git a/NEWS b/NEWS index 6eb577a669..3c1e509744 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 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 dd666ca443..0000000000 --- a/include/sys/vtimes.h +++ /dev/null @@ -1 +0,0 @@ -#include diff --git a/manual/resource.texi b/manual/resource.texi index 60e6d61611..37462abc9e 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 62e0046ae9..416564207d 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 659f655a8b..0000000000 --- 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 - . */ - -#ifndef _SYS_VTIMES_H -#define _SYS_VTIMES_H 1 - -#include - -__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 56eed4cb35..a18c8188a6 100644 --- a/resource/vtimes.c +++ b/resource/vtimes.c @@ -16,12 +16,48 @@ . */ #include -#include #include +#include + +#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 e977715088..66459efdba 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