Hello Jan, On Monday 24 October 2016 09:51 PM, Jan Viktorin wrote: > On Mon, 24 Oct 2016 17:29:25 +0530 > Shreyansh Jain <shreyansh.jain at nxp.com> wrote: > >> From: Jan Viktorin <viktorin at rehivetech.com> >> >> Define initial structures and functions for the SoC infrastructure. >> This patch supports only a very minimal functions for now. >> More features will be added in the following commits. >> >> Includes rte_device/rte_driver inheritance of >> rte_soc_device/rte_soc_driver. >> >> Signed-off-by: Jan Viktorin <viktorin at rehivetech.com> >> Signed-off-by: Shreyansh Jain <shreyansh.jain at nxp.com> >> Signed-off-by: Hemant Agrawal <hemant.agrawal at nxp.com> >> --- >> app/test/Makefile | 1 + >> app/test/test_soc.c | 90 +++++++++++++++++++++ >> lib/librte_eal/common/Makefile | 2 +- >> lib/librte_eal/common/eal_private.h | 4 + >> lib/librte_eal/common/include/rte_soc.h | 138 >> ++++++++++++++++++++++++++++++++ >> 5 files changed, 234 insertions(+), 1 deletion(-) >> create mode 100644 app/test/test_soc.c >> create mode 100644 lib/librte_eal/common/include/rte_soc.h >> >> diff --git a/app/test/Makefile b/app/test/Makefile > > [...] > >> +++ b/lib/librte_eal/common/include/rte_soc.h >> @@ -0,0 +1,138 @@ > > [...] > >> + >> +#include <stdio.h> >> +#include <stdlib.h> >> +#include <stdint.h> >> +#include <inttypes.h> >> +#include <string.h> >> + >> +#include <rte_dev.h> >> +#include <rte_debug.h> >> + >> +struct rte_soc_id { >> + const char *compatible; /**< OF compatible specification */ >> + uint64_t priv_data; /**< SoC Driver specific data */ > > Do you expect this to be a pointer?
A 64 bit entry, which can be typecasted to pointer by implementations, if required. Or, it might as well remain as a 64bit entry as ID. > >> +}; >> + > > [...] > >> + >> +/** >> + * Initialization function for the driver called during SoC probing. >> + */ >> +typedef int (soc_devinit_t)(struct rte_soc_driver *, struct rte_soc_device >> *); >> + >> +/** >> + * Uninitialization function for the driver called during hotplugging. >> + */ >> +typedef int (soc_devuninit_t)(struct rte_soc_device *); >> + >> +/** >> + * A structure describing a SoC driver. >> + */ >> +struct rte_soc_driver { >> + TAILQ_ENTRY(rte_soc_driver) next; /**< Next in list */ >> + struct rte_driver driver; /**< Inherit core driver. */ >> + soc_devinit_t *devinit; /**< Device initialization */ >> + soc_devuninit_t *devuninit; /**< Device uninitialization */ > > Shouldn't those functions be named probe/remove? Indeed. I think there was a comment on v4 as well - I thought I had fixed it but it seems I have mixed up my patches. I will send v6 immediately with this fixed. Thanks for pointing out. > >> + const struct rte_soc_id *id_table; /**< ID table, NULL terminated */ >> +}; >> + > > [...] > >> +#endif > > > - Shreyansh