They are going to be used to re-implement parsers of syscalls that deal
with 64-bit timespec, and to implement parsers of new *time64 syscalls.
* defs.h (print_timespec64_data_size, print_timespec64_array_data_size,
print_timespec64, sprint_timespec64, print_timespec64_utime_pair,
print_itimerspec64): New prototypes.
* print_timespec64.c: New file.
* Makefile.am (strace_SOURCES): Add it.
print_timespec.c \
print_timespec.h \
print_timespec32.c \
+ print_timespec64.c \
print_timeval.c \
print_timex.c \
print_utils.h \
extern int print_itimerspec32(struct tcb *, kernel_ulong_t);
# endif /* HAVE_ARCH_TIME32_SYSCALLS */
+extern bool print_timespec64_data_size(const void *arg, size_t size);
+extern bool print_timespec64_array_data_size(const void *arg,
+ unsigned int nmemb,
+ size_t size);
+extern int print_timespec64(struct tcb *, kernel_ulong_t);
+extern const char *sprint_timespec64(struct tcb *, kernel_ulong_t);
+extern int print_timespec64_utime_pair(struct tcb *, kernel_ulong_t);
+extern int print_itimerspec64(struct tcb *, kernel_ulong_t);
+
# ifdef ALPHA
typedef struct {
int tv_sec, tv_usec;
--- /dev/null
+/*
+ * Copyright (c) 2019 Dmitry V. Levin <ldv@altlinux.org>
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ */
+
+#include "defs.h"
+
+#define TIMESPEC_T kernel_timespec64_t
+#define PRINT_TIMESPEC_DATA_SIZE print_timespec64_data_size
+#define PRINT_TIMESPEC_ARRAY_DATA_SIZE print_timespec64_array_data_size
+#define PRINT_TIMESPEC print_timespec64
+#define SPRINT_TIMESPEC sprint_timespec64
+#define PRINT_TIMESPEC_UTIME_PAIR print_timespec64_utime_pair
+#define PRINT_ITIMERSPEC print_itimerspec64
+
+#include "kernel_timespec.h"
+#include "print_timespec.h"