This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "".
The branch, cloud-dev has been updated via c460b6fbaeae6c60d75e8e5a60c34a6260b9e4fa (commit) from 76edf89deaf0fa126f34b6cd58f4373d211f0c33 (commit)
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- commit c460b6fbaeae6c60d75e8e5a60c34a6260b9e4fa Author: Bogdan Pricope bogdan.pricope@linaro.org Date: Thu Jun 22 11:03:47 2017 +0300
ddf: examples: add ddf module skeleton and ddf application
Signed-off-by: Bogdan Pricope bogdan.pricope@linaro.org Reviewed-and-tested-by: Yi He yi.he@linaro.org Signed-off-by: Yi He yi.he@linaro.org
diff --git a/example/Makefile.am b/example/Makefile.am index dfc07b67..b209585c 100644 --- a/example/Makefile.am +++ b/example/Makefile.am @@ -8,4 +8,6 @@ SUBDIRS = classifier \ switch \ time \ timer \ - traffic_mgmt + traffic_mgmt \ + ddf_ifs \ + ddf_app diff --git a/example/ddf_app/Makefile.am b/example/ddf_app/Makefile.am new file mode 100644 index 00000000..e654202a --- /dev/null +++ b/example/ddf_app/Makefile.am @@ -0,0 +1,10 @@ +include $(top_srcdir)/example/Makefile.inc + +bin_PROGRAMS = odp_ddf_app$(EXEEXT) +odp_ddf_app_LDFLAGS = $(AM_LDFLAGS) -shared +odp_ddf_app_CFLAGS = $(AM_CFLAGS) -I${top_srcdir}/example + +noinst_HEADERS = \ + $(top_srcdir)/example/example_debug.h + +dist_odp_ddf_app_SOURCES = odp_ddf_app.c diff --git a/example/ddf_app/odp_ddf_app.c b/example/ddf_app/odp_ddf_app.c new file mode 100644 index 00000000..af864ee4 --- /dev/null +++ b/example/ddf_app/odp_ddf_app.c @@ -0,0 +1,49 @@ +/* Copyright (c) 2017, Linaro Limited + * All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +/** enable strtok */ +#ifndef _GNU_SOURCE +#define _GNU_SOURCE +#endif + +#include <stdio.h> +#include <stdlib.h> + +#include <example_debug.h> +#include <odp_api.h> +#include <odp_drv.h> +#include <odp/helper/odph_api.h> + +int main(int argc, char *argv[]) +{ + odp_instance_t instance; + + (void)argc; + (void)argv; + + EXAMPLE_DBG("Start DDF Application...\n"); + + /* Initialize ODP before calling anything else */ + if (odp_init_global(&instance, NULL, NULL)) { + EXAMPLE_ERR("Error: ODP global init failed.\n"); + exit(EXIT_FAILURE); + } + + if (odp_init_local(instance, ODP_THREAD_CONTROL)) { + EXAMPLE_ERR("Error: ODP local init failed.\n"); + exit(EXIT_FAILURE); + } + + /* Print ddf objects*/ + odpdrv_print_all(); + + /* Terminate ODP */ + odp_term_local(); + odp_term_global(instance); + + EXAMPLE_DBG("Exit DDF Application.\n"); + return 0; +} diff --git a/example/ddf_ifs/Makefile.am b/example/ddf_ifs/Makefile.am new file mode 100644 index 00000000..aa892acd --- /dev/null +++ b/example/ddf_ifs/Makefile.am @@ -0,0 +1,27 @@ +LIB = $(top_builddir)/lib + +AM_CPPFLAGS += -I$(srcdir) \ + -I$(top_srcdir)/include \ + -I$(top_srcdir)/platform/@with_platform@/include \ + -I$(top_srcdir)/platform/@with_platform@/arch/@ARCH_DIR@ + +lib_LTLIBRARIES = $(LIB)/libddf_ifs.la + +noinst_HEADERS = \ + $(srcdir)/ddf_ifs.h \ + $(srcdir)/ddf_ifs_enumr_class.h \ + $(srcdir)/ddf_ifs_enumr_dpdk.h \ + $(srcdir)/ddf_ifs_enumr_generic.h \ + $(srcdir)/ddf_ifs_dev_dpdk.h \ + $(srcdir)/ddf_ifs_devio_direct.h \ + $(srcdir)/ddf_ifs_driver.h \ + $(srcdir)/ddf_ifs_api.h + +__LIB__libddf_ifs_la_SOURCES = \ + ddf_ifs.c \ + ddf_ifs_enumr_class.c \ + ddf_ifs_enumr_dpdk.c \ + ddf_ifs_enumr_generic.c \ + ddf_ifs_dev_dpdk.c \ + ddf_ifs_devio_direct.c \ + ddf_ifs_driver.c diff --git a/example/ddf_ifs/ddf_ifs.c b/example/ddf_ifs/ddf_ifs.c new file mode 100644 index 00000000..fa2276f7 --- /dev/null +++ b/example/ddf_ifs/ddf_ifs.c @@ -0,0 +1,28 @@ +/* Copyright (c) 2017, Linaro Limited + * All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +#include <stdio.h> +#include "odp_drv.h" +#include "ddf_ifs.h" +#include "ddf_ifs_enumr_class.h" +#include "ddf_ifs_devio_direct.h" +#include "ddf_ifs_driver.h" + +static ODPDRV_CONSTRUCTOR void ddf_ifs_construct(void) +{ + printf("%s()\n", __func__); + + register_enumerator_class(); + + register_devio_direct(); + + register_driver(); +} + +static __attribute__((destructor)) void ddf_ifs_destruct(void) +{ + printf("%s()\n", __func__); +} diff --git a/example/ddf_ifs/ddf_ifs.h b/example/ddf_ifs/ddf_ifs.h new file mode 100644 index 00000000..ff8bc277 --- /dev/null +++ b/example/ddf_ifs/ddf_ifs.h @@ -0,0 +1,18 @@ +/* Copyright (c) 2017, Linaro Limited + * All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +#ifndef _ODP_DDF_IFS_H_ +#define _ODP_DDF_IFS_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __cplusplus +} +#endif + +#endif /*_ODP_DDF_IFS_H_*/ diff --git a/example/ddf_ifs/ddf_ifs_api.h b/example/ddf_ifs/ddf_ifs_api.h new file mode 100644 index 00000000..0d948aea --- /dev/null +++ b/example/ddf_ifs/ddf_ifs_api.h @@ -0,0 +1,25 @@ +/* Copyright (c) 2017, Linaro Limited + * All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +#ifndef _ODP_DDF_IFS_API_H_ +#define _ODP_DDF_IFS_API_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#define DDF_IFS_DEV_API_NAME "ifs_api" +#define DDF_IFS_DEV_API_VER 0 +#define DDF_IFS_DEVIO_API_NAME "devio_api" +#define DDF_IFS_DEVIO_API_VER 0 + +#define DDF_IFS_DRV_NAME "ddf_ifs_drv" + +#ifdef __cplusplus +} +#endif + +#endif /*_ODP_DDF_IFS_API_H_*/ diff --git a/example/ddf_ifs/ddf_ifs_dev_dpdk.c b/example/ddf_ifs/ddf_ifs_dev_dpdk.c new file mode 100644 index 00000000..4d08e510 --- /dev/null +++ b/example/ddf_ifs/ddf_ifs_dev_dpdk.c @@ -0,0 +1,25 @@ +/* Copyright (c) 2017, Linaro Limited + * All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +#include <stdio.h> +#include <string.h> +#include "odp_drv.h" +#include "ddf_ifs_dev_dpdk.h" + +odpdrv_device_t dpdk_device_create(odpdrv_enumr_t enumr, + const char *dev_addr, + void *enum_data) +{ + odpdrv_device_param_t param; + + printf("\t%s(%s)\n", __func__, dev_addr); + + param.enumerator = enumr; + strcpy(param.address, dev_addr); + param.enum_dev = enum_data; + + return odpdrv_device_create(¶m); +} diff --git a/example/ddf_ifs/ddf_ifs_dev_dpdk.h b/example/ddf_ifs/ddf_ifs_dev_dpdk.h new file mode 100644 index 00000000..84583a33 --- /dev/null +++ b/example/ddf_ifs/ddf_ifs_dev_dpdk.h @@ -0,0 +1,24 @@ +/* Copyright (c) 2017, Linaro Limited + * All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +#ifndef _ODP_DDF_IFS_DEV_DPDK_H_ +#define _ODP_DDF_IFS_DEV_DPDK_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "odp_drv.h" + +odpdrv_device_t dpdk_device_create(odpdrv_enumr_t enumr, + const char *dev_addr, + void *enum_data); + +#ifdef __cplusplus +} +#endif + +#endif /*_ODP_DDF_IFS_DEV_DPDK_H_*/ diff --git a/example/ddf_ifs/ddf_ifs_devio_direct.c b/example/ddf_ifs/ddf_ifs_devio_direct.c new file mode 100644 index 00000000..ec451d65 --- /dev/null +++ b/example/ddf_ifs/ddf_ifs_devio_direct.c @@ -0,0 +1,51 @@ +/* Copyright (c) 2017, Linaro Limited + * All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +#include <stdio.h> +#include "odp_drv.h" +#include "ddf_ifs_api.h" +#include "ddf_ifs_devio_direct.h" + +static odpdrv_devio_t devio_direct; + +static int devio_direct_probe(odpdrv_device_t dev) +{ + (void)dev; + + printf("%s()\n", __func__); + + return 0; +} + +static int devio_direct_remove(void) +{ + printf("%s()\n", __func__); + + return 0; +} + +int register_devio_direct(void) +{ + odpdrv_devio_param_t param = { + .api_name = DDF_IFS_DEVIO_API_NAME, + .api_version = DDF_IFS_DEVIO_API_VER, + .enumr_api_name = DDF_IFS_DEV_API_NAME, + .enumr_api_version = DDF_IFS_DEV_API_VER, + .probe = devio_direct_probe, + .remove = devio_direct_remove, + .ops = NULL + }; + + printf("\t%s()\n", __func__); + + devio_direct = odpdrv_devio_register(¶m); + if (ODPDRV_DEVIO_INVALID == devio_direct) { + printf("\tError: failed to %s()\n", __func__); + return -1; + } + + return 0; +} diff --git a/example/ddf_ifs/ddf_ifs_devio_direct.h b/example/ddf_ifs/ddf_ifs_devio_direct.h new file mode 100644 index 00000000..9c004601 --- /dev/null +++ b/example/ddf_ifs/ddf_ifs_devio_direct.h @@ -0,0 +1,20 @@ +/* Copyright (c) 2017, Linaro Limited + * All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +#ifndef _ODP_DDF_IFS_DEVIO_DIRECT_H_ +#define _ODP_DDF_IFS_DEVIO_DIRECT_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +int register_devio_direct(void); + +#ifdef __cplusplus +} +#endif + +#endif /*_ODP_DDF_IFS_DEVIO_DIRECT_H_*/ diff --git a/example/ddf_ifs/ddf_ifs_driver.c b/example/ddf_ifs/ddf_ifs_driver.c new file mode 100644 index 00000000..53f94757 --- /dev/null +++ b/example/ddf_ifs/ddf_ifs_driver.c @@ -0,0 +1,69 @@ +/* Copyright (c) 2017, Linaro Limited + * All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +#include <stdio.h> +#include <string.h> +#include "odp_drv.h" +#include "ddf_ifs_api.h" +#include "ddf_ifs_driver.h" + +static odpdrv_driver_t ddf_ifs_driver; +static int drv_data = 12; + +static int ddf_ifs_driver_probe(odpdrv_device_t dev, odpdrv_devio_t devio, + int devio_idx) +{ + printf("%s(dev, devio, devio_idx = %d)\n", __func__, devio_idx); + + (void)devio; + + odpdrv_device_set_data(dev, (void *)&drv_data); + + return 0; +} + +static int ddf_ifs_driver_unbind(odpdrv_device_t dev, + void (*callback)(odpdrv_device_t dev), + uint32_t flags) +{ + printf("%s()\n", __func__); + + if (!(flags & ODPDRV_DRV_UNBIND_IMMEDIATE)) + return -1; /* unsupported*/ + + callback(dev); + + return 0; +} + +static int ddf_ifs_driver_remove(void) +{ + printf("%s()\n", __func__); + + return 0; +} + +int register_driver(void) +{ + odpdrv_driver_param_t param = { + .name = DDF_IFS_DRV_NAME, + .devios = {{DDF_IFS_DEVIO_API_NAME, DDF_IFS_DEVIO_API_VER}, + {"", 0}, {"", 0} }, + .probe = ddf_ifs_driver_probe, + .unbind = ddf_ifs_driver_unbind, + .remove = ddf_ifs_driver_remove, + }; + + printf("\t%s()\n", __func__); + + ddf_ifs_driver = odpdrv_driver_register(¶m); + if (ODPDRV_DRIVER_INVALID == ddf_ifs_driver) { + printf("Error: Failed to %s()\n", __func__); + return -1; + } + + return 0; +} diff --git a/example/ddf_ifs/ddf_ifs_driver.h b/example/ddf_ifs/ddf_ifs_driver.h new file mode 100644 index 00000000..e990c34a --- /dev/null +++ b/example/ddf_ifs/ddf_ifs_driver.h @@ -0,0 +1,20 @@ +/* Copyright (c) 2017, Linaro Limited + * All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +#ifndef _ODP_DDF_IFS_DRIVER_H_ +#define _ODP_DDF_IFS_DRIVER_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +int register_driver(void); + +#ifdef __cplusplus +} +#endif + +#endif /*_ODP_DDF_IFS_DRIVER_H_*/ diff --git a/example/ddf_ifs/ddf_ifs_enumr_class.c b/example/ddf_ifs/ddf_ifs_enumr_class.c new file mode 100644 index 00000000..8450dee2 --- /dev/null +++ b/example/ddf_ifs/ddf_ifs_enumr_class.c @@ -0,0 +1,47 @@ +/* Copyright (c) 2017, Linaro Limited + * All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +#include <stdio.h> +#include "odp_drv.h" +#include "ddf_ifs_enumr_class.h" +#include "ddf_ifs_enumr_dpdk.h" +#include "ddf_ifs_enumr_generic.h" + +static odpdrv_enumr_class_t enumr_class; + +static int enumr_class_ifs_probe(void) +{ + printf("%s()\n", __func__); + + if (register_enumerator_dpdk(enumr_class)) + return -1; + + if (register_enumerator_generic(enumr_class)) + return -1; + + return 0; +} + +static int enumr_class_ifs_remove(void) +{ + printf("%s()\n", __func__); + + return 0; +} + +int register_enumerator_class(void) +{ + odpdrv_enumr_class_param_t param = { + .name = "enumr_class_ifs", + .probe = enumr_class_ifs_probe, + .remove = enumr_class_ifs_remove + }; + + printf("\t%s()\n", __func__); + enumr_class = odpdrv_enumr_class_register(¶m); + + return 0; +} diff --git a/example/ddf_ifs/ddf_ifs_enumr_class.h b/example/ddf_ifs/ddf_ifs_enumr_class.h new file mode 100644 index 00000000..a3cb0372 --- /dev/null +++ b/example/ddf_ifs/ddf_ifs_enumr_class.h @@ -0,0 +1,20 @@ +/* Copyright (c) 2017, Linaro Limited + * All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +#ifndef _ODP_DDF_IFS_ENUMR_CLASS_H_ +#define _ODP_DDF_IFS_ENUMR_CLASS_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +int register_enumerator_class(void); + +#ifdef __cplusplus +} +#endif + +#endif /*_ODP_DDF_IFS_ENUMR_CLASS_H_*/ diff --git a/example/ddf_ifs/ddf_ifs_enumr_dpdk.c b/example/ddf_ifs/ddf_ifs_enumr_dpdk.c new file mode 100644 index 00000000..782f7b74 --- /dev/null +++ b/example/ddf_ifs/ddf_ifs_enumr_dpdk.c @@ -0,0 +1,86 @@ +/* Copyright (c) 2017, Linaro Limited + * All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +#include <stdio.h> +#include "odp_drv.h" +#include "ddf_ifs_api.h" +#include "ddf_ifs_enumr_dpdk.h" +#include "ddf_ifs_dev_dpdk.h" + +static odpdrv_enumr_t dpdk_enumr; + +#define TEST_DPDK_DEV_CNT 3 +#define DDF_DPDK_DEV_MAX 10 + +static odpdrv_device_t dpdk_dev[DDF_DPDK_DEV_MAX]; +static int dpdk_dev_cnt; +static int dpdk_enumr_probe(void) +{ + int dpdk_dev_cnt_detected = TEST_DPDK_DEV_CNT; /* detected with + dpdk APIs*/ + char dev_addr[ODPDRV_NAME_ADDR_SZ]; + int i; + + printf("%s() - %d devices found\n", __func__, dpdk_dev_cnt_detected); + + if (dpdk_dev_cnt_detected > DDF_DPDK_DEV_MAX) { + dpdk_dev_cnt_detected = DDF_DPDK_DEV_MAX; + printf("\tWarning: dpdk device count scaled down to %d\n", + dpdk_dev_cnt_detected); + } + for (i = 0; i < dpdk_dev_cnt_detected; i++) { + sprintf(dev_addr, "0000:01:00.%d", i); + dpdk_dev[dpdk_dev_cnt] = dpdk_device_create(dpdk_enumr, + dev_addr, + NULL); + if (dpdk_dev[dpdk_dev_cnt] == ODPDRV_DEVICE_INVALID) + printf("\tError: unable to create device: %s\n", + dev_addr); + else + dpdk_dev_cnt++; + } + + return 0; +} + +static int dpdk_enumr_remove(void) +{ + printf("%s()\n", __func__); + return 0; +} + +static int dpdk_enumr_register_notif(void (*event_handler) (uint64_t event), + int64_t event_mask) +{ + (void)event_handler; + (void)event_mask; + + printf("%s()\n", __func__); + + return 0; +} + +int register_enumerator_dpdk(odpdrv_enumr_class_t enumr_class) +{ + struct odpdrv_enumr_param_t param = { + .enumr_class = enumr_class, + .api_name = DDF_IFS_DEV_API_NAME, + .api_version = DDF_IFS_DEV_API_VER, + .probe = dpdk_enumr_probe, + .remove = dpdk_enumr_remove, + .register_notifier = dpdk_enumr_register_notif + }; + + printf("\t%s()\n", __func__); + + dpdk_enumr = odpdrv_enumr_register(¶m); + if (ODPDRV_ENUMR_INVALID == dpdk_enumr) { + printf("\tError: failed to register_enumerator_dpdk()\n"); + return -1; + } + + return 0; +} diff --git a/example/ddf_ifs/ddf_ifs_enumr_dpdk.h b/example/ddf_ifs/ddf_ifs_enumr_dpdk.h new file mode 100644 index 00000000..e670d548 --- /dev/null +++ b/example/ddf_ifs/ddf_ifs_enumr_dpdk.h @@ -0,0 +1,20 @@ +/* Copyright (c) 2017, Linaro Limited + * All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +#ifndef _ODP_DDF_IFS_ENUMR_DPDK_H_ +#define _ODP_DDF_IFS_ENUMR_DPDK_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +int register_enumerator_dpdk(odpdrv_enumr_class_t enumr_class); + +#ifdef __cplusplus +} +#endif + +#endif /*_ODP_DDF_IFS_ENUMR_DPDK_H_*/ diff --git a/example/ddf_ifs/ddf_ifs_enumr_generic.c b/example/ddf_ifs/ddf_ifs_enumr_generic.c new file mode 100644 index 00000000..f5e1a2cb --- /dev/null +++ b/example/ddf_ifs/ddf_ifs_enumr_generic.c @@ -0,0 +1,57 @@ +/* Copyright (c) 2017, Linaro Limited + * All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +#include <stdio.h> +#include "odp_drv.h" +#include "ddf_ifs_api.h" +#include "ddf_ifs_enumr_generic.h" + +static odpdrv_enumr_t gen_enumr; + +static int gen_enumr_probe(void) +{ + printf("%s() - no devices found\n", __func__); + return 0; +} + +static int gen_enumr_remove(void) +{ + printf("%s()\n", __func__); + return 0; +} + +static int gen_enumr_register_notif(void (*event_handler) (uint64_t event), + int64_t event_mask) +{ + (void)event_handler; + (void)event_mask; + + printf("%s()\n", __func__); + + return 0; +} + +int register_enumerator_generic(odpdrv_enumr_class_t enumr_class) +{ + struct odpdrv_enumr_param_t param = { + .enumr_class = enumr_class, + .api_name = DDF_IFS_DEV_API_NAME, + .api_version = DDF_IFS_DEV_API_VER, + .probe = gen_enumr_probe, + .remove = gen_enumr_remove, + .register_notifier = gen_enumr_register_notif + }; + + printf("\t%s()\n", __func__); + + gen_enumr = odpdrv_enumr_register(¶m); + if (ODPDRV_ENUMR_INVALID == gen_enumr) { + printf("\tError:failed to %s()\n", __func__); + return -1; + } + + return 0; +} diff --git a/example/ddf_ifs/ddf_ifs_enumr_generic.h b/example/ddf_ifs/ddf_ifs_enumr_generic.h new file mode 100644 index 00000000..0eeb073f --- /dev/null +++ b/example/ddf_ifs/ddf_ifs_enumr_generic.h @@ -0,0 +1,20 @@ +/* Copyright (c) 2017, Linaro Limited + * All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +#ifndef _ODP_DDF_IFS_ENUMR_GENERIC_H_ +#define _ODP_DDF_IFS_ENUMR_GENERIC_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +int register_enumerator_generic(odpdrv_enumr_class_t enumr_class); + +#ifdef __cplusplus +} +#endif + +#endif /*_ODP_DDF_IFS_ENUMR_GENERIC_H_*/ diff --git a/example/ddf_ifs/odp.conf b/example/ddf_ifs/odp.conf new file mode 100644 index 00000000..14968a7a --- /dev/null +++ b/example/ddf_ifs/odp.conf @@ -0,0 +1,4 @@ +module: +{ + modules = ("libddf_ifs.so.0"); +}; diff --git a/example/m4/configure.m4 b/example/m4/configure.m4 index 620db04f..9e7973b0 100644 --- a/example/m4/configure.m4 +++ b/example/m4/configure.m4 @@ -21,4 +21,6 @@ AC_CONFIG_FILES([example/classifier/Makefile example/time/Makefile example/timer/Makefile example/traffic_mgmt/Makefile + example/ddf_ifs/Makefile + example/ddf_app/Makefile example/Makefile])
-----------------------------------------------------------------------
Summary of changes: example/Makefile.am | 4 +- example/ddf_app/Makefile.am | 10 +++ example/ddf_app/odp_ddf_app.c | 49 ++++++++++++ example/ddf_ifs/Makefile.am | 27 +++++++ example/ddf_ifs/ddf_ifs.c | 28 +++++++ .../x86/cpu_flags.h => example/ddf_ifs/ddf_ifs.h | 8 +- example/ddf_ifs/ddf_ifs_api.h | 25 +++++++ example/ddf_ifs/ddf_ifs_dev_dpdk.c | 25 +++++++ example/ddf_ifs/ddf_ifs_dev_dpdk.h | 24 ++++++ example/ddf_ifs/ddf_ifs_devio_direct.c | 51 +++++++++++++ .../ddf_ifs/ddf_ifs_devio_direct.h | 8 +- example/ddf_ifs/ddf_ifs_driver.c | 69 +++++++++++++++++ .../ddf_ifs/ddf_ifs_driver.h | 8 +- example/ddf_ifs/ddf_ifs_enumr_class.c | 47 ++++++++++++ .../ddf_ifs/ddf_ifs_enumr_class.h | 8 +- example/ddf_ifs/ddf_ifs_enumr_dpdk.c | 86 ++++++++++++++++++++++ .../ddf_ifs/ddf_ifs_enumr_dpdk.h | 8 +- example/ddf_ifs/ddf_ifs_enumr_generic.c | 57 ++++++++++++++ .../ddf_ifs/ddf_ifs_enumr_generic.h | 10 +-- example/ddf_ifs/odp.conf | 4 + example/m4/configure.m4 | 2 + 21 files changed, 530 insertions(+), 28 deletions(-) create mode 100644 example/ddf_app/Makefile.am create mode 100644 example/ddf_app/odp_ddf_app.c create mode 100644 example/ddf_ifs/Makefile.am create mode 100644 example/ddf_ifs/ddf_ifs.c copy platform/linux-generic/arch/x86/cpu_flags.h => example/ddf_ifs/ddf_ifs.h (64%) create mode 100644 example/ddf_ifs/ddf_ifs_api.h create mode 100644 example/ddf_ifs/ddf_ifs_dev_dpdk.c create mode 100644 example/ddf_ifs/ddf_ifs_dev_dpdk.h create mode 100644 example/ddf_ifs/ddf_ifs_devio_direct.c copy platform/linux-generic/arch/x86/cpu_flags.h => example/ddf_ifs/ddf_ifs_devio_direct.h (55%) create mode 100644 example/ddf_ifs/ddf_ifs_driver.c copy platform/linux-generic/arch/x86/cpu_flags.h => example/ddf_ifs/ddf_ifs_driver.h (60%) create mode 100644 example/ddf_ifs/ddf_ifs_enumr_class.c copy platform/linux-generic/arch/x86/cpu_flags.h => example/ddf_ifs/ddf_ifs_enumr_class.h (55%) create mode 100644 example/ddf_ifs/ddf_ifs_enumr_dpdk.c copy platform/linux-generic/arch/x86/cpu_flags.h => example/ddf_ifs/ddf_ifs_enumr_dpdk.h (51%) create mode 100644 example/ddf_ifs/ddf_ifs_enumr_generic.c copy platform/linux-generic/include/drv_driver_internal.h => example/ddf_ifs/ddf_ifs_enumr_generic.h (50%) create mode 100644 example/ddf_ifs/odp.conf
hooks/post-receive