[PATCH v7 03/14] tests/getrusage: Correctly use the long types from the rusage struct
Alistair Francis
alistair.francis at wdc.com
Fri Apr 17 16:47:13 UTC 2020
The kernel's rusage struct uses the kernel's __kernel_old_timeval which
means that even for 32-bit archs with 64-bit time_t (like RV32) the time
values are 32-bit.
We can fix this by making sure we don't use libc's rusage struct and
instead use our own with the kernel's old timeval.
Signed-off-by: Alistair Francis <alistair.francis at wdc.com>
---
tests/getrusage.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/tests/getrusage.c b/tests/getrusage.c
index b046fde2..a71f1174 100644
--- a/tests/getrusage.c
+++ b/tests/getrusage.c
@@ -20,9 +20,10 @@
# include "xlat.h"
# include "xlat/usagewho.h"
+# include "kernel_rusage.h"
int
-invoke_print(int who, const char *who_str, struct rusage *usage)
+invoke_print(int who, const char *who_str, kernel_rusage_t *usage)
{
int rc = syscall(__NR_getrusage, who, usage);
int saved_errno = errno;
@@ -49,7 +50,7 @@ invoke_print(int who, const char *who_str, struct rusage *usage)
int
main(void)
{
- TAIL_ALLOC_OBJECT_CONST_PTR(struct rusage, usage);
+ TAIL_ALLOC_OBJECT_CONST_PTR(kernel_rusage_t, usage);
if (invoke_print(ARG_STR(RUSAGE_SELF), usage)) {
perror_msg_and_fail("RUSAGE_SELF");
}
--
2.26.0
More information about the Strace-devel
mailing list