aboutsummaryrefslogtreecommitdiff
path: root/platform/linux-generic/include/odp/api/plat/time_inlines.h
diff options
context:
space:
mode:
Diffstat (limited to 'platform/linux-generic/include/odp/api/plat/time_inlines.h')
-rw-r--r--platform/linux-generic/include/odp/api/plat/time_inlines.h44
1 files changed, 41 insertions, 3 deletions
diff --git a/platform/linux-generic/include/odp/api/plat/time_inlines.h b/platform/linux-generic/include/odp/api/plat/time_inlines.h
index 1ca495065..bb2913532 100644
--- a/platform/linux-generic/include/odp/api/plat/time_inlines.h
+++ b/platform/linux-generic/include/odp/api/plat/time_inlines.h
@@ -1,5 +1,5 @@
/* Copyright (c) 2018, Linaro Limited
- * Copyright (c) 2020, Nokia
+ * Copyright (c) 2020-2021, Nokia
* All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
@@ -46,6 +46,18 @@ static inline odp_time_t _odp_time_cur(void)
return _odp_timespec_cur();
}
+static inline odp_time_t _odp_time_cur_strict(void)
+{
+ if (_odp_time_glob.use_hw) {
+ odp_time_t time;
+
+ time.count = _odp_cpu_global_time_strict() - _odp_time_glob.hw_start;
+ return time;
+ }
+
+ return _odp_timespec_cur();
+}
+
static inline uint64_t _odp_time_hw_to_ns(odp_time_t time)
{
uint64_t nsec;
@@ -79,6 +91,12 @@ static inline uint64_t _odp_time_convert_to_ns(odp_time_t time)
#define odp_time_to_ns __odp_time_to_ns
#define odp_time_local_ns __odp_time_local_ns
#define odp_time_global_ns __odp_time_global_ns
+
+ #define odp_time_local_strict __odp_time_local_strict
+ #define odp_time_global_strict __odp_time_global_strict
+ #define odp_time_local_strict_ns __odp_time_local_strict_ns
+ #define odp_time_global_strict_ns __odp_time_global_strict_ns
+
#define odp_time_cmp __odp_time_cmp
#define odp_time_diff __odp_time_diff
#define odp_time_sum __odp_time_sum
@@ -97,9 +115,14 @@ _ODP_INLINE odp_time_t odp_time_global(void)
return _odp_time_cur();
}
-_ODP_INLINE uint64_t odp_time_to_ns(odp_time_t time)
+_ODP_INLINE odp_time_t odp_time_local_strict(void)
{
- return _odp_time_convert_to_ns(time);
+ return _odp_time_cur_strict();
+}
+
+_ODP_INLINE odp_time_t odp_time_global_strict(void)
+{
+ return _odp_time_cur_strict();
}
_ODP_INLINE uint64_t odp_time_local_ns(void)
@@ -112,6 +135,21 @@ _ODP_INLINE uint64_t odp_time_global_ns(void)
return _odp_time_convert_to_ns(_odp_time_cur());
}
+_ODP_INLINE uint64_t odp_time_local_strict_ns(void)
+{
+ return _odp_time_convert_to_ns(_odp_time_cur_strict());
+}
+
+_ODP_INLINE uint64_t odp_time_global_strict_ns(void)
+{
+ return _odp_time_convert_to_ns(_odp_time_cur_strict());
+}
+
+_ODP_INLINE uint64_t odp_time_to_ns(odp_time_t time)
+{
+ return _odp_time_convert_to_ns(time);
+}
+
_ODP_INLINE int odp_time_cmp(odp_time_t t2, odp_time_t t1)
{
if (odp_likely(t2.u64 > t1.u64))