about summary refs log tree commit diff
path: root/resource
diff options
context:
space:
mode:
Diffstat (limited to 'resource')
-rw-r--r--resource/Makefile2
-rw-r--r--resource/sys/vtimes.h68
-rw-r--r--resource/vtimes.c45
3 files changed, 43 insertions, 72 deletions
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
-   <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 56eed4cb35..a18c8188a6 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)  */