This patch series can be pulled from: https://git.linaro.org/people/christophe.milard/odp.git/log/?h=drv_framework_v2
Since V1: Fixes following Bill's comments. Note: I am not really sure this is still in phase with what was discussed at connect, since I couldn't attend. But, at least I did the changes following the comments I recieved. Hope that still makes sence. Also, I am aware that patch 1 generates a warning: I copied this part from the north API so I assume this is an agreed decision. This patch series implements the driver interface, i.e. enumerator class, enumerator, devio and drivers registration and probing. This interface is depicted in: https://docs.google.com/document/d/1eCKPJF6uSlOllXi_sKDvRwUD2BXm-ZzxZoKT0nVEsl4/edit The associated tests are testing these mechanisms. Note that these tests are testing staticaly linked modules only (hence avoiding the module/platform/test debate). Also note that these tests are gathering all the elements (enumerators, enumerator classes, devio, drivers) making up the driver interface so as their interactions can be checked. Real elements (pci enumerators, drivers...) will likely be written in a much more stand-alone way. Christophe Milard (23): drv: adding compiler hints in the driver interface linux-gen: adding compiler hints in the driver interface drv: making parameter strings dynamically computable linux-gen: drv: enumerator_class registration test: drv: enumerator_class registration tests linux-gen: drv: enumerator registration test: drv: enumerator registration tests drv: driver: change drv unbind function name and pass correct parameter drv: driver: add callback function for device destruction linux-gen: drv: device creation and deletion drv: driver: adding device query function linux-gen: drv: driver: adding device querry function test: drv: device creation and destruction drv: driver: adding a probe and remove callback for devio linux-gen: drv: devio registration test: drv: devio creation and destruction drv: adding driver remove function drv: complement parameters to the driver probe() function linux-gen: driver registration and probing test: drv: driver registration and probing drv: driver: adding functions to attach driver's data to the device linux-gen: adding functions to attach driver's data to the device test: drv: test for setting and retrieving driver's data include/odp/drv/spec/driver.h | 132 ++- include/odp/drv/spec/hints.h | 119 +++ include/odp_drv.h | 1 + platform/Makefile.inc | 1 + platform/linux-generic/Makefile.am | 1 + platform/linux-generic/_modules.c | 4 + platform/linux-generic/drv_driver.c | 1051 +++++++++++++++++++- .../linux-generic/include/drv_driver_internal.h | 22 + platform/linux-generic/include/odp/drv/hints.h | 34 + platform/linux-generic/include/odp_internal.h | 5 + platform/linux-generic/odp_init.c | 21 +- test/common_plat/m4/configure.m4 | 1 + test/common_plat/validation/drv/Makefile.am | 1 + .../validation/drv/drvdriver/.gitignore | 5 + .../validation/drv/drvdriver/Makefile.am | 60 ++ .../validation/drv/drvdriver/drvdriver_device.c | 218 ++++ .../validation/drv/drvdriver/drvdriver_device.h | 24 + .../drv/drvdriver/drvdriver_device_main.c | 12 + .../validation/drv/drvdriver/drvdriver_devio.c | 209 ++++ .../validation/drv/drvdriver/drvdriver_devio.h | 24 + .../drv/drvdriver/drvdriver_devio_main.c | 12 + .../validation/drv/drvdriver/drvdriver_driver.c | 518 ++++++++++ .../validation/drv/drvdriver/drvdriver_driver.h | 24 + .../drv/drvdriver/drvdriver_driver_main.c | 12 + .../validation/drv/drvdriver/drvdriver_enumr.c | 303 ++++++ .../validation/drv/drvdriver/drvdriver_enumr.h | 24 + .../drv/drvdriver/drvdriver_enumr_class.c | 174 ++++ .../drv/drvdriver/drvdriver_enumr_class.h | 24 + .../drv/drvdriver/drvdriver_enumr_class_main.c | 12 + .../drv/drvdriver/drvdriver_enumr_main.c | 12 + test/linux-generic/Makefile.am | 5 + 31 files changed, 3030 insertions(+), 35 deletions(-) create mode 100644 include/odp/drv/spec/hints.h create mode 100644 platform/linux-generic/include/drv_driver_internal.h create mode 100644 platform/linux-generic/include/odp/drv/hints.h create mode 100644 test/common_plat/validation/drv/drvdriver/.gitignore create mode 100644 test/common_plat/validation/drv/drvdriver/Makefile.am create mode 100644 test/common_plat/validation/drv/drvdriver/drvdriver_device.c create mode 100644 test/common_plat/validation/drv/drvdriver/drvdriver_device.h create mode 100644 test/common_plat/validation/drv/drvdriver/drvdriver_device_main.c create mode 100644 test/common_plat/validation/drv/drvdriver/drvdriver_devio.c create mode 100644 test/common_plat/validation/drv/drvdriver/drvdriver_devio.h create mode 100644 test/common_plat/validation/drv/drvdriver/drvdriver_devio_main.c create mode 100644 test/common_plat/validation/drv/drvdriver/drvdriver_driver.c create mode 100644 test/common_plat/validation/drv/drvdriver/drvdriver_driver.h create mode 100644 test/common_plat/validation/drv/drvdriver/drvdriver_driver_main.c create mode 100644 test/common_plat/validation/drv/drvdriver/drvdriver_enumr.c create mode 100644 test/common_plat/validation/drv/drvdriver/drvdriver_enumr.h create mode 100644 test/common_plat/validation/drv/drvdriver/drvdriver_enumr_class.c create mode 100644 test/common_plat/validation/drv/drvdriver/drvdriver_enumr_class.h create mode 100644 test/common_plat/validation/drv/drvdriver/drvdriver_enumr_class_main.c create mode 100644 test/common_plat/validation/drv/drvdriver/drvdriver_enumr_main.c -- 2.7.4