1 /* Substitute for <sys/resource.h>.
2 Copyright (C) 2012 Free Software Foundation, Inc.
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2, or (at your option)
9 This program 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
12 GNU General Public License for more details.
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, see <http://www.gnu.org/licenses/>. */
18 @PRAGMA_SYSTEM_HEADER@
22 #ifndef _@GUARD_PREFIX@_SYS_RESOURCE_H
24 #if @HAVE_SYS_RESOURCE_H@
26 /* On FreeBSD 5.0, <sys/resource.h> assumes prior inclusion of <sys/types.h>
28 # include <sys/types.h>
29 # include <sys/time.h>
31 /* The include_next requires a split double-inclusion guard. */
32 # @INCLUDE_NEXT@ @NEXT_SYS_RESOURCE_H@
36 #ifndef _@GUARD_PREFIX@_SYS_RESOURCE_H
37 #define _@GUARD_PREFIX@_SYS_RESOURCE_H
39 #if !@HAVE_SYS_RESOURCE_H@
40 /* A platform that lacks <sys/resource.h>. */
42 /* Get 'struct timeval'. */
43 # include <sys/time.h>
45 /* Define the RUSAGE_* constants. */
46 # define RUSAGE_SELF 0
47 # define RUSAGE_CHILDREN -1
53 # if !GNULIB_defined_struct_rusage
54 /* All known platforms that lack <sys/resource.h> also lack any declaration
55 of struct rusage in any other header. */
58 struct timeval ru_utime; /* CPU time used in user mode */
59 struct timeval ru_stime; /* CPU time used in system mode (kernel) */
75 # define GNULIB_defined_struct_rusage 1
84 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */
86 /* The definition of _GL_ARG_NONNULL is copied here. */
88 /* The definition of _GL_WARN_ON_USE is copied here. */
91 /* Declare overridden functions. */
94 #if @GNULIB_GETRUSAGE@
95 # if !@HAVE_GETRUSAGE@
96 _GL_FUNCDECL_SYS (getrusage, int, (int who, struct rusage *usage_p)
97 _GL_ARG_NONNULL ((2)));
99 _GL_CXXALIAS_SYS (getrusage, int, (int who, struct rusage *usage_p));
100 _GL_CXXALIASWARN (getrusage);
101 #elif defined GNULIB_POSIXCHECK
103 # if HAVE_RAW_DECL_GETRUSAGE
104 _GL_WARN_ON_USE (getrusage, "getrusage is unportable - "
105 "use gnulib module getrusage for portability");
110 #endif /* _@GUARD_PREFIX@_SYS_RESOURCE_H */
111 #endif /* _@GUARD_PREFIX@_SYS_RESOURCE_H */