aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorBogdan Pricope <bogdan.pricope@linaro.org>2017-11-23 16:51:21 +0200
committerYi He <yi.he@linaro.org>2017-11-29 13:44:13 +0800
commitff5ecde9f73158f00df5df7da6f6ceb9ad4fe0f2 (patch)
tree7af758ee97c26a65ff2a423cabfb4d2981d851e0 /include
parentcb4d057c0f35fbd9855c4b4a08481aab69be3e07 (diff)
linux-gen: modular-framework: move schedule subsystem header to a public folder
Move schedule subsystem header to a public folder. Signed-off-by: Bogdan Pricope <bogdan.pricope@linaro.org> Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com> Signed-off-by: Yi He <yi.he@linaro.org>
Diffstat (limited to 'include')
-rw-r--r--include/Makefile.am3
-rw-r--r--include/subsystem/spec/schedule_subsystem.h90
2 files changed, 92 insertions, 1 deletions
diff --git a/include/Makefile.am b/include/Makefile.am
index 4436c61b2..b7c31c1f7 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -72,7 +72,8 @@ subsystemspecincludedir= $(includedir)/subsystem/spec
subsystemspecinclude_HEADERS = \
subsystem/spec/buffer_subsystem.h \
subsystem/spec/pool_subsystem.h \
- subsystem/spec/queue_subsystem.h
+ subsystem/spec/queue_subsystem.h \
+ subsystem/spec/schedule_subsystem.h
odpapiabidefaultincludedir= $(includedir)/odp/arch/default/api/abi
odpapiabidefaultinclude_HEADERS = \
diff --git a/include/subsystem/spec/schedule_subsystem.h b/include/subsystem/spec/schedule_subsystem.h
new file mode 100644
index 000000000..7d9247788
--- /dev/null
+++ b/include/subsystem/spec/schedule_subsystem.h
@@ -0,0 +1,90 @@
+/* Copyright (c) 2017, ARM Limited. All rights reserved.
+ *
+ * Copyright (c) 2017, Linaro Limited
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#ifndef ODP_SCHEDULE_SUBSYSTEM_H_
+#define ODP_SCHEDULE_SUBSYSTEM_H_
+#include <odp/visibility_begin.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* API header files */
+#include <odp/api/align.h>
+#include <odp/api/schedule.h>
+
+/* Internal header files */
+#include <odp_module.h>
+
+#define SCHEDULE_SUBSYSTEM_VERSION 0x00010000UL
+
+ODP_SUBSYSTEM_DECLARE(schedule);
+
+ODP_SUBSYSTEM_API(schedule, uint64_t, wait_time, uint64_t ns);
+ODP_SUBSYSTEM_API(schedule, odp_event_t, schedule, odp_queue_t *from,
+ uint64_t wait);
+ODP_SUBSYSTEM_API(schedule, int, schedule_multi, odp_queue_t *from,
+ uint64_t wait, odp_event_t events[], int num);
+ODP_SUBSYSTEM_API(schedule, void, schedule_pause, void);
+ODP_SUBSYSTEM_API(schedule, void, schedule_resume, void);
+ODP_SUBSYSTEM_API(schedule, void, schedule_release_atomic, void);
+ODP_SUBSYSTEM_API(schedule, void, schedule_release_ordered, void);
+ODP_SUBSYSTEM_API(schedule, void, schedule_prefetch, int num);
+ODP_SUBSYSTEM_API(schedule, int, schedule_num_prio, void);
+ODP_SUBSYSTEM_API(schedule, odp_schedule_group_t, schedule_group_create,
+ const char *name, const odp_thrmask_t *mask);
+ODP_SUBSYSTEM_API(schedule, int, schedule_group_destroy,
+ odp_schedule_group_t group);
+ODP_SUBSYSTEM_API(schedule, odp_schedule_group_t, schedule_group_lookup,
+ const char *name);
+ODP_SUBSYSTEM_API(schedule, int, schedule_group_join,
+ odp_schedule_group_t group, const odp_thrmask_t *mask);
+ODP_SUBSYSTEM_API(schedule, int, schedule_group_leave,
+ odp_schedule_group_t group, const odp_thrmask_t *mask);
+ODP_SUBSYSTEM_API(schedule, int, schedule_group_thrmask,
+ odp_schedule_group_t group, odp_thrmask_t *thrmask);
+ODP_SUBSYSTEM_API(schedule, int, schedule_group_info,
+ odp_schedule_group_t group, odp_schedule_group_info_t *info);
+ODP_SUBSYSTEM_API(schedule, void, schedule_order_lock, unsigned lock_index);
+ODP_SUBSYSTEM_API(schedule, void, schedule_order_unlock, unsigned lock_index);
+ODP_SUBSYSTEM_API(schedule, void, schedule_order_unlock_lock,
+ uint32_t unlock_index, uint32_t lock_index);
+
+typedef ODP_MODULE_CLASS(schedule) {
+ odp_module_base_t base;
+ /* Called from CP threads */
+ odp_api_proto(schedule, schedule_group_create) schedule_group_create;
+ odp_api_proto(schedule, schedule_group_destroy) schedule_group_destroy;
+ odp_api_proto(schedule, schedule_group_lookup) schedule_group_lookup;
+ odp_api_proto(schedule, schedule_group_join) schedule_group_join;
+ odp_api_proto(schedule, schedule_group_leave) schedule_group_leave;
+ odp_api_proto(schedule, schedule_group_thrmask) schedule_group_thrmask;
+ odp_api_proto(schedule, schedule_group_info) schedule_group_info;
+ odp_api_proto(schedule, schedule_num_prio) schedule_num_prio;
+ /* Called from DP threads */
+ odp_api_proto(schedule, schedule) schedule ODP_ALIGNED_CACHE;
+ odp_api_proto(schedule, schedule_multi) schedule_multi;
+ odp_api_proto(schedule, schedule_prefetch) schedule_prefetch;
+ odp_api_proto(schedule, schedule_order_lock) schedule_order_lock;
+ odp_api_proto(schedule, schedule_order_unlock) schedule_order_unlock;
+ odp_api_proto(schedule, schedule_order_unlock_lock) schedule_order_unlock_lock;
+ odp_api_proto(schedule, schedule_release_atomic)
+ schedule_release_atomic;
+ odp_api_proto(schedule, schedule_release_ordered)
+ schedule_release_ordered;
+ odp_api_proto(schedule, wait_time) wait_time;
+ odp_api_proto(schedule, schedule_pause) schedule_pause;
+ odp_api_proto(schedule, schedule_resume) schedule_resume;
+} odp_schedule_module_t;
+
+#ifdef __cplusplus
+}
+#endif
+
+#include <odp/visibility_end.h>
+#endif /* ODP_SCHEDULE_SUBSYSTEM_H_ */