From: Joyce Kong <[email protected]>

Signed-off-by: Joyce Kong <[email protected]>
Reviewed-by: Yi He <[email protected]>
Reviewed-by: Kevin Wang <[email protected]>
Reviewed-by: Honnappa Nagarahalli <[email protected]>
Reviewed-by: Brian Brooks <[email protected]>
---
/** Email created from pull request 168 (JoyceKong-arm:cloud-dev-queue)
 ** https://github.com/Linaro/odp/pull/168
 ** Patch: https://github.com/Linaro/odp/pull/168.patch
 ** Base sha: d3fe76f2af39af17a3661b866a442878abc31ddc
 ** Merge commit sha: 4e6dfadf1ad71a08717776a3508763055a2443f2
 **/
 platform/linux-generic/Makefile.am                 |  2 +
 .../linux-generic/include/odp_queue_subsystem.h    | 76 ++++++++++++++++++++++
 platform/linux-generic/queue/subsystem.c           | 16 +++++
 3 files changed, 94 insertions(+)
 create mode 100644 platform/linux-generic/include/odp_queue_subsystem.h
 create mode 100644 platform/linux-generic/queue/subsystem.c

diff --git a/platform/linux-generic/Makefile.am 
b/platform/linux-generic/Makefile.am
index 3e3e0c22..2057d64c 100644
--- a/platform/linux-generic/Makefile.am
+++ b/platform/linux-generic/Makefile.am
@@ -192,6 +192,7 @@ noinst_HEADERS = \
                  ${srcdir}/include/odp_packet_socket.h \
                  ${srcdir}/include/odp_packet_tap.h \
                  ${srcdir}/include/odp_pkt_queue_internal.h \
+                 ${srcdir}/include/odp_queue_subsystem.h \
                  ${srcdir}/include/odp_pool_internal.h \
                  ${srcdir}/include/odp_pool_subsystem.h \
                  ${srcdir}/include/odp_posix_extensions.h \
@@ -277,6 +278,7 @@ __LIB__libodp_linux_la_SOURCES = \
                           odp_pkt_queue.c \
                           odp_queue.c \
                           odp_queue_if.c \
+                          queue/subsystem.c \
                           odp_queue_scalable.c \
                           odp_rwlock.c \
                           odp_rwlock_recursive.c \
diff --git a/platform/linux-generic/include/odp_queue_subsystem.h 
b/platform/linux-generic/include/odp_queue_subsystem.h
new file mode 100644
index 00000000..c63309fa
--- /dev/null
+++ b/platform/linux-generic/include/odp_queue_subsystem.h
@@ -0,0 +1,76 @@
+/* Copyright (c) 2017, ARM Limited. All rights reserved.
+ *
+ * Copyright (c) 2017, Linaro Limited
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier:    BSD-3-Clause
+ */
+#ifndef ODP_QUEUE_SUBSYSTEM_H
+#define ODP_QUEUE_SUBSYSTEM_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <odp_module.h>
+#include <odp/api/queue.h>
+
+#define QUEUE_SUBSYSTEM_VERSION 0x00010000UL
+
+/* ODP queue public APIs subsystem */
+ODP_SUBSYSTEM_DECLARE(queue);
+
+/* Subsystem APIs declarations */
+ODP_SUBSYSTEM_API(queue, odp_queue_t, create, const char *name,
+                 const odp_queue_param_t *param);
+ODP_SUBSYSTEM_API(queue, int, destroy, odp_queue_t queue);
+ODP_SUBSYSTEM_API(queue, odp_queue_t, lookup, const char *name);
+ODP_SUBSYSTEM_API(queue, int, capability, odp_queue_capability_t *capa);
+ODP_SUBSYSTEM_API(queue, int, context_set, odp_queue_t queue,
+                 void *context, uint32_t len);
+ODP_SUBSYSTEM_API(queue, void *, context, odp_queue_t queue);
+ODP_SUBSYSTEM_API(queue, int, enq, odp_queue_t queue, odp_event_t ev);
+ODP_SUBSYSTEM_API(queue, int, enq_multi, odp_queue_t queue,
+                 const odp_event_t events[], int num);
+ODP_SUBSYSTEM_API(queue, odp_event_t, deq, odp_queue_t queue);
+ODP_SUBSYSTEM_API(queue, int, deq_multi, odp_queue_t queue,
+                 odp_event_t events[], int num);
+ODP_SUBSYSTEM_API(queue, odp_queue_type_t, type, odp_queue_t queue);
+ODP_SUBSYSTEM_API(queue, odp_schedule_sync_t, sched_type, odp_queue_t queue);
+ODP_SUBSYSTEM_API(queue, odp_schedule_prio_t, sched_prio, odp_queue_t queue);
+ODP_SUBSYSTEM_API(queue, odp_schedule_group_t, sched_group,
+                 odp_queue_t queue);
+ODP_SUBSYSTEM_API(queue, int, lock_count, odp_queue_t queue);
+ODP_SUBSYSTEM_API(queue, uint64_t, to_u64, odp_queue_t hdl);
+ODP_SUBSYSTEM_API(queue, void, param_init, odp_queue_param_t *param);
+ODP_SUBSYSTEM_API(queue, int, info, odp_queue_t queue,
+                 odp_queue_info_t *info);
+
+typedef ODP_MODULE_CLASS(queue) {
+       odp_module_base_t base;
+
+       odp_api_proto(queue, enq_multi) enq_multi;
+       odp_api_proto(queue, deq_multi) deq_multi;
+       odp_api_proto(queue, enq) enq;
+       odp_api_proto(queue, deq) deq;
+       odp_api_proto(queue, context) context;
+       odp_api_proto(queue, sched_type) sched_type;
+       odp_api_proto(queue, sched_prio) sched_prio;
+       odp_api_proto(queue, sched_group) sched_group;
+       odp_api_proto(queue, create) create;
+       odp_api_proto(queue, destroy) destroy;
+       odp_api_proto(queue, lookup) lookup;
+       odp_api_proto(queue, capability) capability;
+       odp_api_proto(queue, context_set) context_set;
+       odp_api_proto(queue, type) type;
+       odp_api_proto(queue, lock_count) lock_count;
+       odp_api_proto(queue, to_u64) to_u64;
+       odp_api_proto(queue, param_init) param_init;
+       odp_api_proto(queue, info) info;
+} odp_queue_module_t;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/platform/linux-generic/queue/subsystem.c 
b/platform/linux-generic/queue/subsystem.c
new file mode 100644
index 00000000..d4707f0f
--- /dev/null
+++ b/platform/linux-generic/queue/subsystem.c
@@ -0,0 +1,16 @@
+/* Copyright (c) 2017, ARM Limited. All rights reserved.
+ *
+ * Copyright (c) 2017, Linaro Limited
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier:    BSD-3-Clause
+ */
+#include <odp_module.h>
+#include <odp_queue_subsystem.h>
+
+ODP_SUBSYSTEM_DEFINE(queue, "queue public APIs", QUEUE_SUBSYSTEM_VERSION);
+
+ODP_SUBSYSTEM_CONSTRUCTOR(queue)
+{
+       odp_subsystem_constructor(queue);
+}

Reply via email to