Message ID | 20170611235919.10052-1-bill.fischofer@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | [API-NEXT,PATCHv3,1/4] api: feature: add odp feature bits | expand |
> -----Original Message----- > From: lng-odp [mailto:lng-odp-bounces@lists.linaro.org] On Behalf Of Bill > Fischofer > Sent: Monday, June 12, 2017 2:59 AM > To: lng-odp@lists.linaro.org > Subject: [lng-odp] [API-NEXT PATCHv3 1/4] api: feature: add odp feature > bits > > 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 | 60 > ++++++++++++++++++++++++ > 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, 98 insertions(+), 1 deletion(-) > create mode 100644 include/odp/api/spec/feature.h > create mode 100644 platform/linux-generic/include/odp/api/feature.h > > diff --git a/include/odp/api/spec/feature.h > b/include/odp/api/spec/feature.h > new file mode 100644 > index 00000000..a1cf4505 > --- /dev/null > +++ b/include/odp/api/spec/feature.h > @@ -0,0 +1,60 @@ > +/* 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> > +#include <odp/api/hints.h> > +#include <odp/api/thread.h> > +#include <odp/api/cpumask.h> These three includes above are not needed. > + > +/** @defgroup odp_features ODP_FEATURES > + * ODP feature definitions > + * @{ > + */ > + > +/** Definition of ODP features */ > +typedef union odp_feature_t { > + /** All features */ > + uint32_t all_feat; > + > + /** Individual feature bits */ > + struct { > + uint32_t classification:1; "classifier" or "cls" instead of classification. Packet IO API has "classifier_enable" parameter. IPSEC API has "ODP_IPSEC_PIPELINE_CLS" enumeration. > + uint32_t crypto:1; > + uint32_t ipsec:1; > + uint32_t schedule:1; > + uint32_t time:1; > + uint32_t timer:1; > + uint32_t traffic_mngr:1; > + } feat; > +} odp_feature_t; Each feature bit would need some documentation about it. Application does not include spec directory header files, but odp_api.h. So, a "feature" needs to be defined other means than with file names. For example, what feature "cls" means ... calls to odp_cls_xxx() / odp_cos_xxx() functions. -Petri
Thanks. I'll fix this in v4. On Mon, Jun 12, 2017 at 7:28 AM, Savolainen, Petri (Nokia - FI/Espoo) <petri.savolainen@nokia.com> wrote: > > >> -----Original Message----- >> From: lng-odp [mailto:lng-odp-bounces@lists.linaro.org] On Behalf Of Bill >> Fischofer >> Sent: Monday, June 12, 2017 2:59 AM >> To: lng-odp@lists.linaro.org >> Subject: [lng-odp] [API-NEXT PATCHv3 1/4] api: feature: add odp feature >> bits >> >> 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 | 60 >> ++++++++++++++++++++++++ >> 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, 98 insertions(+), 1 deletion(-) >> create mode 100644 include/odp/api/spec/feature.h >> create mode 100644 platform/linux-generic/include/odp/api/feature.h >> >> diff --git a/include/odp/api/spec/feature.h >> b/include/odp/api/spec/feature.h >> new file mode 100644 >> index 00000000..a1cf4505 >> --- /dev/null >> +++ b/include/odp/api/spec/feature.h >> @@ -0,0 +1,60 @@ >> +/* 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> >> +#include <odp/api/hints.h> >> +#include <odp/api/thread.h> >> +#include <odp/api/cpumask.h> > > These three includes above are not needed. > > >> + >> +/** @defgroup odp_features ODP_FEATURES >> + * ODP feature definitions >> + * @{ >> + */ >> + >> +/** Definition of ODP features */ >> +typedef union odp_feature_t { >> + /** All features */ >> + uint32_t all_feat; >> + >> + /** Individual feature bits */ >> + struct { >> + uint32_t classification:1; > > "classifier" or "cls" instead of classification. Packet IO API has "classifier_enable" parameter. IPSEC API has "ODP_IPSEC_PIPELINE_CLS" enumeration. > >> + uint32_t crypto:1; >> + uint32_t ipsec:1; >> + uint32_t schedule:1; >> + uint32_t time:1; >> + uint32_t timer:1; >> + uint32_t traffic_mngr:1; >> + } feat; >> +} odp_feature_t; > > Each feature bit would need some documentation about it. Application does not include spec directory header files, but odp_api.h. So, a "feature" needs to be defined other means than with file names. For example, what feature "cls" means ... calls to odp_cls_xxx() / odp_cos_xxx() functions. > > > -Petri > > >
diff --git a/include/odp/api/spec/feature.h b/include/odp/api/spec/feature.h new file mode 100644 index 00000000..a1cf4505 --- /dev/null +++ b/include/odp/api/spec/feature.h @@ -0,0 +1,60 @@ +/* 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> +#include <odp/api/hints.h> +#include <odp/api/thread.h> +#include <odp/api/cpumask.h> + +/** @defgroup odp_features ODP_FEATURES + * ODP feature definitions + * @{ + */ + +/** Definition of ODP features */ +typedef union odp_feature_t { + /** All features */ + uint32_t all_feat; + + /** Individual feature bits */ + struct { + uint32_t classification:1; + uint32_t crypto:1; + uint32_t ipsec:1; + uint32_t schedule:1; + uint32_t time:1; + uint32_t timer:1; + uint32_t traffic_mngr:1; + } feat; +} odp_feature_t; + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#include <odp/visibility_end.h> +#endif diff --git a/include/odp_api.h b/include/odp_api.h index 8146e024..86232ee1 100644 --- a/include/odp_api.h +++ b/include/odp_api.h @@ -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> diff --git a/platform/Makefile.inc b/platform/Makefile.inc index 3d609aa7..9f856a15 100644 --- a/platform/Makefile.inc +++ b/platform/Makefile.inc @@ -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 \ diff --git a/platform/linux-generic/Makefile.am b/platform/linux-generic/Makefile.am index 58c73767..b4bbd07e 100644 --- a/platform/linux-generic/Makefile.am +++ b/platform/linux-generic/Makefile.am @@ -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 \ diff --git a/platform/linux-generic/include/odp/api/feature.h b/platform/linux-generic/include/odp/api/feature.h new file mode 100644 index 00000000..55a86a83 --- /dev/null +++ b/platform/linux-generic/include/odp/api/feature.h @@ -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 | 60 ++++++++++++++++++++++++ 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, 98 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