Browse Source

print_timespec.h: conditionalize printers

This allows to implement a parser of SO_TIMESTAMP_NEW control message
without implementing extra unused printers.

* print_timespec.h (PRINT_TIMESPEC_DATA_SIZE,
PRINT_TIMESPEC_ARRAY_DATA_SIZE, PRINT_TIMESPEC, SPRINT_TIMESPEC,
PRINT_TIMESPEC_UTIME_PAIR, PRINT_ITIMERSPEC): Conditionalize.
Dmitry V. Levin 9 months ago
parent
commit
6c3a7845eb
1 changed files with 34 additions and 22 deletions
  1. 34
    22
      print_timespec.h

+ 34
- 22
print_timespec.h View File

@@ -32,28 +32,7 @@ print_timespec_t(const TIMESPEC_T *t)
32 32
 	print_sec_nsec(TIMESPEC_TO_SEC_NSEC(t));
33 33
 }
34 34
 
35
-static void
36
-print_timespec_t_utime(const TIMESPEC_T *t)
37
-{
38
-	switch (t->tv_nsec) {
39
-	case UTIME_NOW:
40
-	case UTIME_OMIT:
41
-		if (xlat_verbose(xlat_verbosity) != XLAT_STYLE_ABBREV)
42
-			print_timespec_t(t);
43
-		if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_RAW)
44
-			break;
45
-
46
-		(xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE
47
-			? tprints_comment : tprints)(t->tv_nsec == UTIME_NOW
48
-				? "UTIME_NOW" : "UTIME_OMIT");
49
-		break;
50
-	default:
51
-		print_timespec_t(t);
52
-		tprints_comment(sprinttime_nsec(TIMESPEC_TO_SEC_NSEC(t)));
53
-		break;
54
-	}
55
-}
56
-
35
+#ifdef PRINT_TIMESPEC_DATA_SIZE
57 36
 bool
58 37
 PRINT_TIMESPEC_DATA_SIZE(const void *arg, const size_t size)
59 38
 {
@@ -65,7 +44,9 @@ PRINT_TIMESPEC_DATA_SIZE(const void *arg, const size_t size)
65 44
 	print_timespec_t(arg);
66 45
 	return true;
67 46
 }
47
+#endif /* PRINT_TIMESPEC_DATA_SIZE */
68 48
 
49
+#ifdef PRINT_TIMESPEC_ARRAY_DATA_SIZE
69 50
 bool
70 51
 PRINT_TIMESPEC_ARRAY_DATA_SIZE(const void *arg, const unsigned int nmemb,
71 52
 			       const size_t size)
@@ -89,7 +70,9 @@ PRINT_TIMESPEC_ARRAY_DATA_SIZE(const void *arg, const unsigned int nmemb,
89 70
 	tprints("]");
90 71
 	return true;
91 72
 }
73
+#endif /* PRINT_TIMESPEC_ARRAY_DATA_SIZE */
92 74
 
75
+#ifdef PRINT_TIMESPEC
93 76
 int
94 77
 PRINT_TIMESPEC(struct tcb *const tcp, const kernel_ulong_t addr)
95 78
 {
@@ -101,7 +84,9 @@ PRINT_TIMESPEC(struct tcb *const tcp, const kernel_ulong_t addr)
101 84
 	print_timespec_t(&t);
102 85
 	return 0;
103 86
 }
87
+#endif /* PRINT_TIMESPEC */
104 88
 
89
+#ifdef SPRINT_TIMESPEC
105 90
 const char *
106 91
 SPRINT_TIMESPEC(struct tcb *const tcp, const kernel_ulong_t addr)
107 92
 {
@@ -119,6 +104,30 @@ SPRINT_TIMESPEC(struct tcb *const tcp, const kernel_ulong_t addr)
119 104
 
120 105
 	return buf;
121 106
 }
107
+#endif /* SPRINT_TIMESPEC */
108
+
109
+#ifdef PRINT_TIMESPEC_UTIME_PAIR
110
+static void
111
+print_timespec_t_utime(const TIMESPEC_T *t)
112
+{
113
+	switch (t->tv_nsec) {
114
+	case UTIME_NOW:
115
+	case UTIME_OMIT:
116
+		if (xlat_verbose(xlat_verbosity) != XLAT_STYLE_ABBREV)
117
+			print_timespec_t(t);
118
+		if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_RAW)
119
+			break;
120
+
121
+		(xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE
122
+			? tprints_comment : tprints)(t->tv_nsec == UTIME_NOW
123
+				? "UTIME_NOW" : "UTIME_OMIT");
124
+		break;
125
+	default:
126
+		print_timespec_t(t);
127
+		tprints_comment(sprinttime_nsec(TIMESPEC_TO_SEC_NSEC(t)));
128
+		break;
129
+	}
130
+}
122 131
 
123 132
 int
124 133
 PRINT_TIMESPEC_UTIME_PAIR(struct tcb *const tcp, const kernel_ulong_t addr)
@@ -135,7 +144,9 @@ PRINT_TIMESPEC_UTIME_PAIR(struct tcb *const tcp, const kernel_ulong_t addr)
135 144
 	tprints("]");
136 145
 	return 0;
137 146
 }
147
+#endif /* PRINT_TIMESPEC_UTIME_PAIR */
138 148
 
149
+#ifdef PRINT_ITIMERSPEC
139 150
 int
140 151
 PRINT_ITIMERSPEC(struct tcb *const tcp, const kernel_ulong_t addr)
141 152
 {
@@ -151,3 +162,4 @@ PRINT_ITIMERSPEC(struct tcb *const tcp, const kernel_ulong_t addr)
151 162
 	tprints("}");
152 163
 	return 0;
153 164
 }
165
+#endif /* PRINT_ITIMERSPEC */

Loading…
Cancel
Save