new file mode 100644
@@ -0,0 +1,65 @@
+/* Copyright (c) 2017, Linaro Limited
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+/**
+ * @file
+ *
+ * ODP features.
+ * Define various ODP feature sets that can be referenced by other
+ * components.
+ */
+
+#ifndef ODP_API_FEATURE_H_
+#define ODP_API_FEATURE_H_
+#include <odp/visibility_begin.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <odp/api/std_types.h>
+
+/** @defgroup odp_features ODP_FEATURE
+ * ODP feature definitions
+ * @{
+ */
+
+/** Definition of ODP features */
+typedef union odp_feature_t {
+ /** All features */
+ uint32_t all_feat;
+
+ /** Individual feature bits */
+ struct {
+ /** Classifier APIs are not used, e.g., odp_cls_xxx(),
+ * odp_cos_xxx() */
+ uint32_t cls:1;
+ /** Crypto APIs are not used, e.g., odp_crypto_xxx() */
+ uint32_t crypto:1;
+ /** IPsec APIs are not used, e.g., odp_ipsec_xxx() */
+ uint32_t ipsec:1;
+ /** Scheduler APIs are not used, e.g., odp_schedule_xxx() */
+ uint32_t schedule:1;
+ /** Time APIs are not used, e.g., odp_time_xxx(),
+ * odp_timeout_xxx() */
+ uint32_t time:1;
+ /** Timer APIs are not used, e.g., odp_timer_xxx() */
+ uint32_t timer:1;
+ /** Traffic Manager APIs are not used, e.g., odp_tm_xxx() */
+ uint32_t tm:1;
+ } feat;
+} odp_feature_t;
+
+/**
+ * @}
+ */
+
+#ifdef __cplusplus
+}
+#endif
+
+#include <odp/visibility_end.h>
+#endif
@@ -32,6 +32,7 @@ extern "C" {
#include <odp/api/barrier.h>
#include <odp/api/spinlock.h>
#include <odp/api/atomic.h>
+#include <odp/api/feature.h>
#include <odp/api/init.h>
#include <odp/api/system_info.h>
#include <odp/api/thread.h>
@@ -32,6 +32,7 @@ odpapispecinclude_HEADERS = \
$(top_srcdir)/include/odp/api/spec/deprecated.h \
$(top_srcdir)/include/odp/api/spec/errno.h \
$(top_srcdir)/include/odp/api/spec/event.h \
+ $(top_srcdir)/include/odp/api/spec/feature.h \
$(top_srcdir)/include/odp/api/spec/support.h \
$(top_srcdir)/include/odp/api/spec/hash.h \
$(top_srcdir)/include/odp/api/spec/hints.h \
@@ -38,7 +38,7 @@ odpapiinclude_HEADERS = \
$(srcdir)/include/odp/api/deprecated.h \
$(srcdir)/include/odp/api/errno.h \
$(srcdir)/include/odp/api/event.h \
- $(srcdir)/include/odp/api/support.h \
+ $(srcdir)/include/odp/api/feature.h \
$(srcdir)/include/odp/api/hash.h \
$(srcdir)/include/odp/api/hints.h \
$(srcdir)/include/odp/api/init.h \
@@ -59,6 +59,7 @@ odpapiinclude_HEADERS = \
$(srcdir)/include/odp/api/spinlock_recursive.h \
$(srcdir)/include/odp/api/std_clib.h \
$(srcdir)/include/odp/api/std_types.h \
+ $(srcdir)/include/odp/api/support.h \
$(srcdir)/include/odp/api/sync.h \
$(srcdir)/include/odp/api/system_info.h \
$(srcdir)/include/odp/api/thread.h \
new file mode 100644
@@ -0,0 +1,34 @@
+/* Copyright (c) 2017, Linaro Limited
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+/**
+ * @file
+ *
+ * ODP features.
+ */
+
+#ifndef ODP_PLAT_FEATURE_H_
+#define ODP_PLAT_FEATURE_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** @ingroup odp_feature
+ * @{
+ */
+
+/**
+ * @}
+ */
+
+#include <odp/api/spec/feature.h>
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
Add new odp_feature_t bits that permit other APIs/components to refer to various ODP features. Signed-off-by: Bill Fischofer <bill.fischofer@linaro.org> --- include/odp/api/spec/feature.h | 65 ++++++++++++++++++++++++ include/odp_api.h | 1 + platform/Makefile.inc | 1 + platform/linux-generic/Makefile.am | 3 +- platform/linux-generic/include/odp/api/feature.h | 34 +++++++++++++ 5 files changed, 103 insertions(+), 1 deletion(-) create mode 100644 include/odp/api/spec/feature.h create mode 100644 platform/linux-generic/include/odp/api/feature.h -- 2.11.0