]> granicus.if.org Git - strace/commitdiff
print_timespec.h: parametrize TIMESPEC_T.tv_nsec
authorDmitry V. Levin <ldv@altlinux.org>
Fri, 17 May 2019 16:16:29 +0000 (16:16 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Fri, 17 May 2019 16:16:29 +0000 (16:16 +0000)
This is going to be used to implement a parser of SO_TIMESTAMP_NEW
control message.

* print_timespec.h [!TIMESPEC_NSEC] (TIMESPEC_NSEC): Define to tv_sec.
(TIMESPEC_TO_SEC_NSEC, timespec_fmt, print_timespec_t_utime): Use
TIMESPEC_NSEC instead of tv_sec.

print_timespec.h

index 9d759e0566c62d1eaf3bab527f285fd6c7498179..9199d530ff39bd8fb1ac4aa8e920f851edbde0ec 100644 (file)
@@ -8,6 +8,10 @@
 
 #include "xstring.h"
 
+#ifndef TIMESPEC_NSEC
+# define TIMESPEC_NSEC tv_nsec
+#endif
+
 #ifndef UTIME_NOW
 # define UTIME_NOW ((1l << 30) - 1l)
 #endif
 #endif
 
 #define TIMESPEC_TO_SEC_NSEC(t_)       \
-       ((long long) (t_)->tv_sec), zero_extend_signed_to_ull((t_)->tv_nsec)
+       ((long long) (t_)->tv_sec),     \
+        zero_extend_signed_to_ull((t_)->TIMESPEC_NSEC)
 
-static const char timespec_fmt[] = "{tv_sec=%lld, tv_nsec=%llu}";
+static const char timespec_fmt[] =
+       "{tv_sec=%lld, " STRINGIFY_VAL(TIMESPEC_NSEC) "=%llu}";
 
 static void
 print_sec_nsec(long long sec, unsigned long long nsec)
@@ -110,7 +116,7 @@ SPRINT_TIMESPEC(struct tcb *const tcp, const kernel_ulong_t addr)
 static void
 print_timespec_t_utime(const TIMESPEC_T *t)
 {
-       switch (t->tv_nsec) {
+       switch (t->TIMESPEC_NSEC) {
        case UTIME_NOW:
        case UTIME_OMIT:
                if (xlat_verbose(xlat_verbosity) != XLAT_STYLE_ABBREV)
@@ -119,7 +125,7 @@ print_timespec_t_utime(const TIMESPEC_T *t)
                        break;
 
                (xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE
-                       ? tprints_comment : tprints)(t->tv_nsec == UTIME_NOW
+                       ? tprints_comment : tprints)(t->TIMESPEC_NSEC == UTIME_NOW
                                ? "UTIME_NOW" : "UTIME_OMIT");
                break;
        default: