1 #ifndef _SYS_RESOURCE_H
2 #include <resource/sys/resource.h>
8 /* Internal version of rusage with a 64-bit time_t. */
10 # define __rusage64 rusage
14 struct __timeval64 ru_utime
;
15 struct __timeval64 ru_stime
;
19 __syscall_slong_t __ru_maxrss_word
;
24 __syscall_slong_t __ru_ixrss_word
;
29 __syscall_slong_t __ru_idrss_word
;
34 __syscall_slong_t __ru_isrss_word
;
39 __syscall_slong_t __ru_minflt_word
;
44 __syscall_slong_t __ru_majflt_word
;
49 __syscall_slong_t __ru_nswap_word
;
54 __syscall_slong_t __ru_inblock_word
;
59 __syscall_slong_t __ru_oublock_word
;
64 __syscall_slong_t __ru_msgsnd_word
;
69 __syscall_slong_t __ru_msgrcv_word
;
74 __syscall_slong_t __ru_nsignals_word
;
79 __syscall_slong_t __ru_nvcsw_word
;
84 __syscall_slong_t __ru_nivcsw_word
;
90 rusage64_to_rusage (const struct __rusage64
*restrict r64
,
91 struct rusage
*restrict r
)
93 /* Make sure the entire output structure is cleared, including
94 padding and reserved fields. */
95 memset (r
, 0, sizeof *r
);
97 r
->ru_utime
= valid_timeval64_to_timeval (r64
->ru_utime
);
98 r
->ru_stime
= valid_timeval64_to_timeval (r64
->ru_stime
);
99 r
->ru_maxrss
= r64
->ru_maxrss
;
100 r
->ru_ixrss
= r64
->ru_ixrss
;
101 r
->ru_idrss
= r64
->ru_idrss
;
102 r
->ru_isrss
= r64
->ru_isrss
;
103 r
->ru_minflt
= r64
->ru_minflt
;
104 r
->ru_majflt
= r64
->ru_majflt
;
105 r
->ru_nswap
= r64
->ru_nswap
;
106 r
->ru_inblock
= r64
->ru_inblock
;
107 r
->ru_oublock
= r64
->ru_oublock
;
108 r
->ru_msgsnd
= r64
->ru_msgsnd
;
109 r
->ru_msgrcv
= r64
->ru_msgrcv
;
110 r
->ru_nsignals
= r64
->ru_nsignals
;
111 r
->ru_nvcsw
= r64
->ru_nvcsw
;
112 r
->ru_nivcsw
= r64
->ru_nivcsw
;
115 /* Prototypes repeated instead of using __typeof because
116 sys/resource.h is included in C++ tests, and declaring functions
117 with __typeof and __THROW doesn't work for C++. */
118 extern int __getpriority (__priority_which_t __which
, id_t __who
) __THROW
;
119 libc_hidden_proto (__getpriority
)
120 extern int __setpriority (__priority_which_t __which
, id_t __who
, int __prio
)
122 libc_hidden_proto (__setpriority
)
123 libc_hidden_proto (getrlimit64
)
124 extern __typeof (getrlimit64
) __getrlimit64
;
125 libc_hidden_proto (__getrlimit64
);
127 /* Now define the internal interfaces. */
128 extern int __getrlimit (enum __rlimit_resource __resource
,
129 struct rlimit
*__rlimits
) __nonnull ((2));
130 libc_hidden_proto (__getrlimit
)
131 extern int __getrusage (enum __rusage_who __who
, struct rusage
*__usage
)
134 extern int __setrlimit (enum __rlimit_resource __resource
,
135 const struct rlimit
*__rlimits
) __nonnull ((2));
136 libc_hidden_proto (__setrlimit
);
139 # define __getrusage64 __getrusage
140 # define __wait4_time64 __wait4
141 # define __wait3_time64 __wait3
143 extern int __getrusage64 (enum __rusage_who who
, struct __rusage64
*usage
);
144 libc_hidden_proto (__getrusage64
)
145 extern pid_t
__wait4_time64 (pid_t pid
, int *stat_loc
, int options
,
146 struct __rusage64
*usage
);
147 libc_hidden_proto (__wait4_time64
)
148 extern pid_t
__wait3_time64 (int *stat_loc
, int options
,
149 struct __rusage64
*usage
);
150 libc_hidden_proto (__wait3_time64
)