summaryrefslogtreecommitdiff
path: root/include/mach/time_value.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/mach/time_value.h')
-rw-r--r--include/mach/time_value.h67
1 files changed, 40 insertions, 27 deletions
diff --git a/include/mach/time_value.h b/include/mach/time_value.h
index 7378c2cf..0c89f4eb 100644
--- a/include/mach/time_value.h
+++ b/include/mach/time_value.h
@@ -93,7 +93,8 @@ static __inline__ time_value_t convert_time_value_from_user(rpc_time_value_t tv)
#define time_value64_assert(val) \
assert(0 <= (val)->nanoseconds && (val)->nanoseconds < TIME_NANOS_MAX);
-#define time_value_add_usec(val, micros) { \
+#define time_value_add_usec(val, micros) \
+MACRO_BEGIN \
time_value_assert(val); \
if (((val)->microseconds += (micros)) \
>= TIME_MICROS_MAX) { \
@@ -101,9 +102,10 @@ static __inline__ time_value_t convert_time_value_from_user(rpc_time_value_t tv)
(val)->seconds++; \
} \
time_value_assert(val); \
-}
+MACRO_END
-#define time_value64_add_nanos(val, nanos) { \
+#define time_value64_add_nanos(val, nanos) \
+MACRO_BEGIN \
time_value64_assert(val); \
if (((val)->nanoseconds += (nanos)) \
>= TIME_NANOS_MAX) { \
@@ -111,49 +113,56 @@ static __inline__ time_value_t convert_time_value_from_user(rpc_time_value_t tv)
(val)->seconds++; \
} \
time_value64_assert(val); \
-}
+MACRO_END
-#define time_value64_sub_nanos(val, nanos) { \
+#define time_value64_sub_nanos(val, nanos) \
+MACRO_BEGIN \
time_value64_assert(val); \
if (((val)->nanoseconds -= (nanos)) < 0) { \
(val)->nanoseconds += TIME_NANOS_MAX; \
(val)->seconds--; \
} \
- time_value64_assert(val); \
-}
+ time_value64_assert(val); \
+MACRO_END
-#define time_value_add(result, addend) { \
+#define time_value_add(result, addend) \
+MACRO_BEGIN \
time_value_assert(addend); \
(result)->seconds += (addend)->seconds; \
time_value_add_usec(result, (addend)->microseconds); \
- }
+MACRO_END
-#define time_value64_add(result, addend) { \
+#define time_value64_add(result, addend) \
+MACRO_BEGIN \
time_value64_assert(addend); \
(result)->seconds += (addend)->seconds; \
time_value64_add_nanos(result, (addend)->nanoseconds); \
- }
+MACRO_END
-#define time_value64_sub(result, subtrahend) { \
+#define time_value64_sub(result, subtrahend) \
+MACRO_BEGIN \
time_value64_assert(subtrahend); \
(result)->seconds -= (subtrahend)->seconds; \
time_value64_sub_nanos(result, (subtrahend)->nanoseconds); \
- }
+MACRO_END
-#define time_value64_init(tv) { \
+#define time_value64_init(tv) \
+MACRO_BEGIN \
(tv)->seconds = 0; \
(tv)->nanoseconds = 0; \
- }
+MACRO_END
-#define TIME_VALUE64_TO_TIME_VALUE(tv64, tv) do { \
+#define TIME_VALUE64_TO_TIME_VALUE(tv64, tv) \
+MACRO_BEGIN \
(tv)->seconds = (tv64)->seconds; \
(tv)->microseconds = (tv64)->nanoseconds / 1000; \
-} while(0)
+MACRO_END
-#define TIME_VALUE_TO_TIME_VALUE64(tv, tv64) do { \
+#define TIME_VALUE_TO_TIME_VALUE64(tv, tv64) \
+MACRO_BEGIN \
(tv64)->seconds = (tv)->seconds; \
(tv64)->nanoseconds = (tv)->microseconds * 1000; \
-} while(0)
+MACRO_END
/*
* Time value available through the mapped-time interface.
@@ -178,26 +187,30 @@ typedef struct mapped_time_value {
/* Macros for converting between struct timespec and time_value_t. */
-#define TIME_VALUE_TO_TIMESPEC(tv, ts) do { \
+#define TIME_VALUE_TO_TIMESPEC(tv, ts) \
+MACRO_BEGIN \
(ts)->tv_sec = (tv)->seconds; \
(ts)->tv_nsec = (tv)->microseconds * 1000; \
-} while(0)
+MACRO_END
-#define TIMESPEC_TO_TIME_VALUE(tv, ts) do { \
+#define TIMESPEC_TO_TIME_VALUE(tv, ts) \
+MACRO_BEGIN \
(tv)->seconds = (ts)->tv_sec; \
(tv)->microseconds = (ts)->tv_nsec / 1000; \
-} while(0)
+MACRO_END
/* Macros for converting between struct timespec and time_value64_t. */
-#define TIME_VALUE64_TO_TIMESPEC(tv, ts) do { \
+#define TIME_VALUE64_TO_TIMESPEC(tv, ts) \
+MACRO_BEGIN \
(ts)->tv_sec = (tv)->seconds; \
(ts)->tv_nsec = (tv)->nanoseconds; \
-} while(0)
+MACRO_END
-#define TIMESPEC_TO_TIME_VALUE64(tv, ts) do { \
+#define TIMESPEC_TO_TIME_VALUE64(tv, ts) \
+MACRO_BEGIN \
(tv)->seconds = (ts)->tv_sec; \
(tv)->nanoseconds = (ts)->tv_nsec; \
-} while(0)
+MACRO_END
#endif /* _MACH_TIME_VALUE_H_ */