aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatias Elo <matias.elo@nokia.com>2023-06-09 13:31:42 +0300
committerMatias Elo <matias.elo@nokia.com>2023-06-09 18:13:14 +0300
commit875d5bb720580f4695818dfc53e2bc38e215159e (patch)
treead9fdb61f2bdbddd1e193d3ccc0161e9946e9ee0
parent5283e47821287965c9d6cd15b36a4fb18ecea8c0 (diff)
api: time: split header files
Split time API into separate header files for functions and types. This makes inlining API function implementations easier. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
-rw-r--r--include/Makefile.am9
-rw-r--r--include/odp/api/abi-default/time.h37
-rw-r--r--include/odp/api/abi-default/time_types.h49
-rw-r--r--include/odp/api/spec/packet.h2
-rw-r--r--include/odp/api/spec/packet_io.h2
-rw-r--r--include/odp/api/spec/time.h33
-rw-r--r--include/odp/api/spec/time_types.h63
-rw-r--r--include/odp/api/time.h1
-rw-r--r--include/odp/api/time_types.h28
-rw-r--r--include/odp/arch/arm32-linux/odp/api/abi/time_types.h7
-rw-r--r--include/odp/arch/arm64-linux/odp/api/abi/time_types.h7
-rw-r--r--include/odp/arch/default-linux/odp/api/abi/time_types.h7
-rw-r--r--include/odp/arch/power64-linux/odp/api/abi/time_types.h7
-rw-r--r--include/odp/arch/x86_32-linux/odp/api/abi/time_types.h7
-rw-r--r--include/odp/arch/x86_64-linux/odp/api/abi/time_types.h7
-rw-r--r--platform/linux-generic/Makefile.am1
-rw-r--r--platform/linux-generic/include-abi/odp/api/abi/time.h4
-rw-r--r--platform/linux-generic/include-abi/odp/api/abi/time_types.h7
-rw-r--r--platform/linux-generic/include/odp/api/plat/packet_inlines.h2
-rw-r--r--platform/linux-generic/include/odp/api/plat/time_inlines.h4
-rw-r--r--platform/linux-generic/include/odp_packet_io_internal.h1
21 files changed, 213 insertions, 72 deletions
diff --git a/include/Makefile.am b/include/Makefile.am
index cc2f17ae2..81d0253e5 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -68,6 +68,7 @@ odpapiinclude_HEADERS = \
odp/api/thrmask.h \
odp/api/ticketlock.h \
odp/api/time.h \
+ odp/api/time_types.h \
odp/api/timer.h \
odp/api/timer_types.h \
odp/api/traffic_mngr.h \
@@ -134,6 +135,7 @@ odpapispecinclude_HEADERS = \
odp/api/spec/thrmask.h \
odp/api/spec/ticketlock.h \
odp/api/spec/time.h \
+ odp/api/spec/time_types.h \
odp/api/spec/timer.h \
odp/api/spec/timer_types.h \
odp/api/spec/traffic_mngr.h
@@ -193,6 +195,7 @@ odpapiabidefaultinclude_HEADERS = \
odp/api/abi-default/thrmask.h \
odp/api/abi-default/ticketlock.h \
odp/api/abi-default/time.h \
+ odp/api/abi-default/time_types.h \
odp/api/abi-default/timer.h \
odp/api/abi-default/timer_types.h \
odp/api/abi-default/traffic_mngr.h \
@@ -253,6 +256,7 @@ odpapiabiarchinclude_HEADERS = \
odp/arch/arm32-linux/odp/api/abi/thrmask.h \
odp/arch/arm32-linux/odp/api/abi/ticketlock.h \
odp/arch/arm32-linux/odp/api/abi/time.h \
+ odp/arch/arm32-linux/odp/api/abi/time_types.h \
odp/arch/arm32-linux/odp/api/abi/timer.h \
odp/arch/arm32-linux/odp/api/abi/timer_types.h \
odp/arch/arm32-linux/odp/api/abi/traffic_mngr.h \
@@ -309,6 +313,7 @@ odpapiabiarchinclude_HEADERS = \
odp/arch/arm64-linux/odp/api/abi/thrmask.h \
odp/arch/arm64-linux/odp/api/abi/ticketlock.h \
odp/arch/arm64-linux/odp/api/abi/time.h \
+ odp/arch/arm64-linux/odp/api/abi/time_types.h \
odp/arch/arm64-linux/odp/api/abi/timer.h \
odp/arch/arm64-linux/odp/api/abi/timer_types.h \
odp/arch/arm64-linux/odp/api/abi/traffic_mngr.h \
@@ -365,6 +370,7 @@ odpapiabiarchinclude_HEADERS = \
odp/arch/default-linux/odp/api/abi/thrmask.h \
odp/arch/default-linux/odp/api/abi/ticketlock.h \
odp/arch/default-linux/odp/api/abi/time.h \
+ odp/arch/default-linux/odp/api/abi/time_types.h \
odp/arch/default-linux/odp/api/abi/timer.h \
odp/arch/default-linux/odp/api/abi/timer_types.h \
odp/arch/default-linux/odp/api/abi/traffic_mngr.h \
@@ -421,6 +427,7 @@ odpapiabiarchinclude_HEADERS = \
odp/arch/power64-linux/odp/api/abi/thrmask.h \
odp/arch/power64-linux/odp/api/abi/ticketlock.h \
odp/arch/power64-linux/odp/api/abi/time.h \
+ odp/arch/power64-linux/odp/api/abi/time_types.h \
odp/arch/power64-linux/odp/api/abi/timer.h \
odp/arch/power64-linux/odp/api/abi/timer_types.h \
odp/arch/power64-linux/odp/api/abi/traffic_mngr.h \
@@ -477,6 +484,7 @@ odpapiabiarchinclude_HEADERS = \
odp/arch/x86_32-linux/odp/api/abi/thrmask.h \
odp/arch/x86_32-linux/odp/api/abi/ticketlock.h \
odp/arch/x86_32-linux/odp/api/abi/time.h \
+ odp/arch/x86_32-linux/odp/api/abi/time_types.h \
odp/arch/x86_32-linux/odp/api/abi/timer.h \
odp/arch/x86_32-linux/odp/api/abi/timer_types.h \
odp/arch/x86_32-linux/odp/api/abi/traffic_mngr.h \
@@ -533,6 +541,7 @@ odpapiabiarchinclude_HEADERS = \
odp/arch/x86_64-linux/odp/api/abi/thrmask.h \
odp/arch/x86_64-linux/odp/api/abi/ticketlock.h \
odp/arch/x86_64-linux/odp/api/abi/time.h \
+ odp/arch/x86_64-linux/odp/api/abi/time_types.h \
odp/arch/x86_64-linux/odp/api/abi/timer.h \
odp/arch/x86_64-linux/odp/api/abi/timer_types.h \
odp/arch/x86_64-linux/odp/api/abi/traffic_mngr.h \
diff --git a/include/odp/api/abi-default/time.h b/include/odp/api/abi-default/time.h
index 94587371d..e601e6fd2 100644
--- a/include/odp/api/abi-default/time.h
+++ b/include/odp/api/abi-default/time.h
@@ -1,15 +1,9 @@
-/* Copyright (c) 2015-2018, Linaro Limited
+/* Copyright (c) 2023, Nokia
* All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
-/**
- * @file
- *
- * ODP time service
- */
-
#ifndef ODP_ABI_TIME_H_
#define ODP_ABI_TIME_H_
@@ -17,34 +11,7 @@
extern "C" {
#endif
-/** @addtogroup odp_time
- * @{
- **/
-
-/**
- * @internal Time structure used for both POSIX timespec and HW counter
- * implementations.
- */
-typedef struct odp_time_t {
- /** @internal Variant mappings for time type */
- union {
- /** @internal Used with generic 64 bit operations */
- uint64_t u64;
-
- /** @internal Nanoseconds */
- uint64_t nsec;
-
- /** @internal HW timer counter value */
- uint64_t count;
-
- };
-} odp_time_t;
-
-#define ODP_TIME_NULL ((odp_time_t){.u64 = 0})
-
-/**
- * @}
- */
+/* Empty header required due to the inline functions */
#ifdef __cplusplus
}
diff --git a/include/odp/api/abi-default/time_types.h b/include/odp/api/abi-default/time_types.h
new file mode 100644
index 000000000..4b7ec47eb
--- /dev/null
+++ b/include/odp/api/abi-default/time_types.h
@@ -0,0 +1,49 @@
+/* Copyright (c) 2015-2018, Linaro Limited
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#ifndef ODP_ABI_TIME_TYPES_H_
+#define ODP_ABI_TIME_TYPES_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdint.h>
+
+/** @ingroup odp_time
+ * @{
+ **/
+
+/**
+ * @internal Time structure used for both POSIX timespec and HW counter
+ * implementations.
+ */
+typedef struct odp_time_t {
+ /** @internal Variant mappings for time type */
+ union {
+ /** @internal Used with generic 64 bit operations */
+ uint64_t u64;
+
+ /** @internal Nanoseconds */
+ uint64_t nsec;
+
+ /** @internal HW timer counter value */
+ uint64_t count;
+
+ };
+} odp_time_t;
+
+#define ODP_TIME_NULL ((odp_time_t){.u64 = 0})
+
+/**
+ * @}
+ */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/include/odp/api/spec/packet.h b/include/odp/api/spec/packet.h
index 04e7424c6..9f41edf1a 100644
--- a/include/odp/api/spec/packet.h
+++ b/include/odp/api/spec/packet.h
@@ -25,7 +25,7 @@ extern "C" {
#include <odp/api/pool_types.h>
#include <odp/api/proto_stats_types.h>
#include <odp/api/std_types.h>
-#include <odp/api/time.h>
+#include <odp/api/time_types.h>
/** @defgroup odp_packet ODP PACKET
* Packet event metadata and operations.
diff --git a/include/odp/api/spec/packet_io.h b/include/odp/api/spec/packet_io.h
index 04e983cb4..54aa2214b 100644
--- a/include/odp/api/spec/packet_io.h
+++ b/include/odp/api/spec/packet_io.h
@@ -25,7 +25,7 @@ extern "C" {
#include <odp/api/packet_io_types.h>
#include <odp/api/queue_types.h>
#include <odp/api/reassembly.h>
-#include <odp/api/time.h>
+#include <odp/api/time_types.h>
/** @defgroup odp_packet_io ODP PACKET IO
* Packet IO interfaces.
diff --git a/include/odp/api/spec/time.h b/include/odp/api/spec/time.h
index c25338a51..f4496c4c7 100644
--- a/include/odp/api/spec/time.h
+++ b/include/odp/api/spec/time.h
@@ -1,5 +1,5 @@
/* Copyright (c) 2013-2018, Linaro Limited
- * Copyright (c) 2020-2021, Nokia
+ * Copyright (c) 2020-2023, Nokia
* All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
@@ -19,39 +19,14 @@
extern "C" {
#endif
+#include <odp/api/std_types.h>
+#include <odp/api/time_types.h>
+
/** @defgroup odp_time ODP TIME
* Chip and CPU level wall clock time.
* @{
*/
-/** A microsecond in nanoseconds */
-#define ODP_TIME_USEC_IN_NS 1000ULL
-
-/** A millisecond in nanoseconds */
-#define ODP_TIME_MSEC_IN_NS 1000000ULL
-
-/** A second in nanoseconds */
-#define ODP_TIME_SEC_IN_NS 1000000000ULL
-
-/** A minute in nanoseconds */
-#define ODP_TIME_MIN_IN_NS 60000000000ULL
-
-/** An hour in nanoseconds */
-#define ODP_TIME_HOUR_IN_NS 3600000000000ULL
-
-/**
- * @typedef odp_time_t
- * ODP time stamp. Time stamp can represent a time stamp from local or global
- * time source. A local time stamp must not be shared between threads. API calls
- * work correctly only when all time stamps for input are from the same time
- * source.
- */
-
-/**
- * @def ODP_TIME_NULL
- * Zero time stamp
- */
-
/**
* Current local time
*
diff --git a/include/odp/api/spec/time_types.h b/include/odp/api/spec/time_types.h
new file mode 100644
index 000000000..9065b8004
--- /dev/null
+++ b/include/odp/api/spec/time_types.h
@@ -0,0 +1,63 @@
+/* Copyright (c) 2013-2018, Linaro Limited
+ * Copyright (c) 2020-2023, Nokia
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+/**
+ * @file
+ *
+ * ODP time
+ */
+
+#ifndef ODP_API_SPEC_TIME_TYPES_H_
+#define ODP_API_SPEC_TIME_TYPES_H_
+#include <odp/visibility_begin.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** @addtogroup odp_time
+ * @{
+ */
+
+/** A microsecond in nanoseconds */
+#define ODP_TIME_USEC_IN_NS 1000ULL
+
+/** A millisecond in nanoseconds */
+#define ODP_TIME_MSEC_IN_NS 1000000ULL
+
+/** A second in nanoseconds */
+#define ODP_TIME_SEC_IN_NS 1000000000ULL
+
+/** A minute in nanoseconds */
+#define ODP_TIME_MIN_IN_NS 60000000000ULL
+
+/** An hour in nanoseconds */
+#define ODP_TIME_HOUR_IN_NS 3600000000000ULL
+
+/**
+ * @typedef odp_time_t
+ * ODP time stamp. Time stamp can represent a time stamp from local or global
+ * time source. A local time stamp must not be shared between threads. API calls
+ * work correctly only when all time stamps for input are from the same time
+ * source.
+ */
+
+/**
+ * @def ODP_TIME_NULL
+ * Zero time stamp
+ */
+
+/**
+ * @}
+ */
+
+#ifdef __cplusplus
+}
+#endif
+
+#include <odp/visibility_end.h>
+#endif
diff --git a/include/odp/api/time.h b/include/odp/api/time.h
index 125e9118b..fb550724d 100644
--- a/include/odp/api/time.h
+++ b/include/odp/api/time.h
@@ -17,7 +17,6 @@
extern "C" {
#endif
-#include <odp/api/std_types.h>
#include <odp/api/abi/time.h>
#include <odp/api/spec/time.h>
diff --git a/include/odp/api/time_types.h b/include/odp/api/time_types.h
new file mode 100644
index 000000000..f7281d456
--- /dev/null
+++ b/include/odp/api/time_types.h
@@ -0,0 +1,28 @@
+/* Copyright (c) 2023, Nokia
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+/**
+ * @file
+ *
+ * ODP time
+ */
+
+#ifndef ODP_API_TIME_TYPES_H_
+#define ODP_API_TIME_TYPES_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <odp/api/abi/time_types.h>
+
+#include <odp/api/spec/time_types.h>
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/include/odp/arch/arm32-linux/odp/api/abi/time_types.h b/include/odp/arch/arm32-linux/odp/api/abi/time_types.h
new file mode 100644
index 000000000..cba80f508
--- /dev/null
+++ b/include/odp/arch/arm32-linux/odp/api/abi/time_types.h
@@ -0,0 +1,7 @@
+/* Copyright (c) 2023, Nokia
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#include <odp/api/abi-default/time_types.h>
diff --git a/include/odp/arch/arm64-linux/odp/api/abi/time_types.h b/include/odp/arch/arm64-linux/odp/api/abi/time_types.h
new file mode 100644
index 000000000..cba80f508
--- /dev/null
+++ b/include/odp/arch/arm64-linux/odp/api/abi/time_types.h
@@ -0,0 +1,7 @@
+/* Copyright (c) 2023, Nokia
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#include <odp/api/abi-default/time_types.h>
diff --git a/include/odp/arch/default-linux/odp/api/abi/time_types.h b/include/odp/arch/default-linux/odp/api/abi/time_types.h
new file mode 100644
index 000000000..cba80f508
--- /dev/null
+++ b/include/odp/arch/default-linux/odp/api/abi/time_types.h
@@ -0,0 +1,7 @@
+/* Copyright (c) 2023, Nokia
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#include <odp/api/abi-default/time_types.h>
diff --git a/include/odp/arch/power64-linux/odp/api/abi/time_types.h b/include/odp/arch/power64-linux/odp/api/abi/time_types.h
new file mode 100644
index 000000000..cba80f508
--- /dev/null
+++ b/include/odp/arch/power64-linux/odp/api/abi/time_types.h
@@ -0,0 +1,7 @@
+/* Copyright (c) 2023, Nokia
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#include <odp/api/abi-default/time_types.h>
diff --git a/include/odp/arch/x86_32-linux/odp/api/abi/time_types.h b/include/odp/arch/x86_32-linux/odp/api/abi/time_types.h
new file mode 100644
index 000000000..cba80f508
--- /dev/null
+++ b/include/odp/arch/x86_32-linux/odp/api/abi/time_types.h
@@ -0,0 +1,7 @@
+/* Copyright (c) 2023, Nokia
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#include <odp/api/abi-default/time_types.h>
diff --git a/include/odp/arch/x86_64-linux/odp/api/abi/time_types.h b/include/odp/arch/x86_64-linux/odp/api/abi/time_types.h
new file mode 100644
index 000000000..cba80f508
--- /dev/null
+++ b/include/odp/arch/x86_64-linux/odp/api/abi/time_types.h
@@ -0,0 +1,7 @@
+/* Copyright (c) 2023, Nokia
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#include <odp/api/abi-default/time_types.h>
diff --git a/platform/linux-generic/Makefile.am b/platform/linux-generic/Makefile.am
index 324507ee5..42760f579 100644
--- a/platform/linux-generic/Makefile.am
+++ b/platform/linux-generic/Makefile.am
@@ -115,6 +115,7 @@ odpapiabiarchinclude_HEADERS += \
include-abi/odp/api/abi/thrmask.h \
include-abi/odp/api/abi/ticketlock.h \
include-abi/odp/api/abi/time.h \
+ include-abi/odp/api/abi/time_types.h \
include-abi/odp/api/abi/timer.h \
include-abi/odp/api/abi/timer_types.h \
include-abi/odp/api/abi/traffic_mngr.h \
diff --git a/platform/linux-generic/include-abi/odp/api/abi/time.h b/platform/linux-generic/include-abi/odp/api/abi/time.h
index e80e57b18..62c7e2b67 100644
--- a/platform/linux-generic/include-abi/odp/api/abi/time.h
+++ b/platform/linux-generic/include-abi/odp/api/abi/time.h
@@ -4,7 +4,5 @@
* SPDX-License-Identifier: BSD-3-Clause
*/
-#include <odp/api/abi-default/time.h>
-
-/* Inlined functions for non-ABI compat mode */
+/* Inlined API functions */
#include <odp/api/plat/time_inlines.h>
diff --git a/platform/linux-generic/include-abi/odp/api/abi/time_types.h b/platform/linux-generic/include-abi/odp/api/abi/time_types.h
new file mode 100644
index 000000000..cba80f508
--- /dev/null
+++ b/platform/linux-generic/include-abi/odp/api/abi/time_types.h
@@ -0,0 +1,7 @@
+/* Copyright (c) 2023, Nokia
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#include <odp/api/abi-default/time_types.h>
diff --git a/platform/linux-generic/include/odp/api/plat/packet_inlines.h b/platform/linux-generic/include/odp/api/plat/packet_inlines.h
index f03c88e10..960dbc5fc 100644
--- a/platform/linux-generic/include/odp/api/plat/packet_inlines.h
+++ b/platform/linux-generic/include/odp/api/plat/packet_inlines.h
@@ -18,7 +18,7 @@
#include <odp/api/hints.h>
#include <odp/api/packet_types.h>
#include <odp/api/pool_types.h>
-#include <odp/api/time.h>
+#include <odp/api/time_types.h>
#include <odp/api/plat/debug_inlines.h>
#include <odp/api/plat/packet_io_inlines.h>
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 2ffb94c66..f8f4bee89 100644
--- a/platform/linux-generic/include/odp/api/plat/time_inlines.h
+++ b/platform/linux-generic/include/odp/api/plat/time_inlines.h
@@ -8,12 +8,14 @@
#ifndef ODP_PLAT_TIME_INLINES_H_
#define ODP_PLAT_TIME_INLINES_H_
-#include <stdint.h>
#include <odp/api/align.h>
#include <odp/api/hints.h>
+#include <odp/api/time_types.h>
#include <odp/api/abi/cpu_time.h>
+#include <stdint.h>
+
/** @cond _ODP_HIDE_FROM_DOXYGEN_ */
#define _ODP_TIMESPEC_SIZE 16
diff --git a/platform/linux-generic/include/odp_packet_io_internal.h b/platform/linux-generic/include/odp_packet_io_internal.h
index 9caf3c2e9..05dda9897 100644
--- a/platform/linux-generic/include/odp_packet_io_internal.h
+++ b/platform/linux-generic/include/odp_packet_io_internal.h
@@ -22,6 +22,7 @@ extern "C" {
#include <odp/api/packet_io.h>
#include <odp/api/spinlock.h>
#include <odp/api/ticketlock.h>
+#include <odp/api/time.h>
#include <odp/api/plat/packet_io_inlines.h>