[dpdk-dev] [PATCH v4 11/17] eal/soc: add default scan for Soc devices
Jan Viktorin
viktorin at rehivetech.com
Sun Oct 16 02:56:58 CEST 2016
On Sat, 15 Oct 2016 19:15:02 +0530
Shreyansh Jain <shreyansh.jain at nxp.com> wrote:
> From: Jan Viktorin <viktorin at rehivetech.com>
>
> Default implementation which scans the sysfs platform devices hierarchy.
> For each device, extract the ueven and convert into rte_soc_device.
>
> The information populated can then be used in probe to match against
> the drivers registered.
>
> Signed-off-by: Jan Viktorin <viktorin at rehivetech.com>
> [Shreyansh: restructure commit to be an optional implementation]
> Signed-off-by: Shreyansh Jain <shreyansh.jain at nxp.com>
[...]
> +
> +int
> +rte_eal_soc_scan(void)
What about naming it rte_eal_soc_scan_default? This would underline the
fact that this function can be replaced.
Second, this is for the 7/17 patch:
-/* register a driver */
void
rte_eal_soc_register(struct rte_soc_driver *driver)
{
+ /* For a valid soc driver, match and scan function
+ * should be provided.
+ */
+ RTE_VERIFY(driver != NULL);
+ RTE_VERIFY(driver->match_fn != NULL);
+ RTE_VERIFY(driver->scan_fn != NULL);
What about setting the match_fn and scan_fn to default implementations if they
are NULL? This would make the standard/default approach easier to use.
TAILQ_INSERT_TAIL(&soc_driver_list, driver, next);
}
> +{
> + struct dirent *e;
> + DIR *dir;
> + char dirname[PATH_MAX];
> +
> + dir = opendir(soc_get_sysfs_path());
> + if (dir == NULL) {
> + RTE_LOG(ERR, EAL, "%s(): opendir failed: %s\n",
> + __func__, strerror(errno));
> + return -1;
> + }
> +
> + while ((e = readdir(dir)) != NULL) {
> + if (e->d_name[0] == '.')
> + continue;
> +
> + snprintf(dirname, sizeof(dirname), "%s/%s",
> + soc_get_sysfs_path(), e->d_name);
> + if (soc_scan_one(dirname, e->d_name) < 0)
> + goto error;
> + }
> + closedir(dir);
> + return 0;
> +
> +error:
> + closedir(dir);
> + return -1;
> +}
> +
> /* Init the SoC EAL subsystem */
> int
> rte_eal_soc_init(void)
--
Jan Viktorin E-mail: Viktorin at RehiveTech.com
System Architect Web: www.RehiveTech.com
RehiveTech
Brno, Czech Republic
More information about the dev
mailing list