117c839f7STomasz Duszynski /* SPDX-License-Identifier: BSD-3-Clause 217c839f7STomasz Duszynski * Copyright(C) 2023 Marvell. 317c839f7STomasz Duszynski */ 417c839f7STomasz Duszynski 517c839f7STomasz Duszynski #ifndef PLATFORM_PRIVATE_H 617c839f7STomasz Duszynski #define PLATFORM_PRIVATE_H 717c839f7STomasz Duszynski 817c839f7STomasz Duszynski #include <bus_driver.h> 917c839f7STomasz Duszynski #include <rte_bus.h> 1017c839f7STomasz Duszynski #include <rte_common.h> 1117c839f7STomasz Duszynski #include <rte_dev.h> 1217c839f7STomasz Duszynski #include <rte_log.h> 1317c839f7STomasz Duszynski #include <rte_os.h> 1417c839f7STomasz Duszynski 1517c839f7STomasz Duszynski #include "bus_platform_driver.h" 1617c839f7STomasz Duszynski 1717c839f7STomasz Duszynski extern struct rte_platform_bus platform_bus; 1817c839f7STomasz Duszynski 1917c839f7STomasz Duszynski /* Platform bus iterators. */ 2017c839f7STomasz Duszynski #define FOREACH_DEVICE_ON_PLATFORM_BUS(p) \ 2117c839f7STomasz Duszynski RTE_TAILQ_FOREACH(p, &(platform_bus.device_list), next) 2217c839f7STomasz Duszynski 2317c839f7STomasz Duszynski #define FOREACH_DRIVER_ON_PLATFORM_BUS(p) \ 2417c839f7STomasz Duszynski RTE_TAILQ_FOREACH(p, &(platform_bus.driver_list), next) 2517c839f7STomasz Duszynski 2617c839f7STomasz Duszynski /* 2717c839f7STomasz Duszynski * Structure describing platform bus. 2817c839f7STomasz Duszynski */ 2917c839f7STomasz Duszynski struct rte_platform_bus { 3017c839f7STomasz Duszynski struct rte_bus bus; /* Core bus */ 3117c839f7STomasz Duszynski RTE_TAILQ_HEAD(, rte_platform_device) device_list; /* List of bus devices */ 3217c839f7STomasz Duszynski RTE_TAILQ_HEAD(, rte_platform_driver) driver_list; /* List of bus drivers */ 3317c839f7STomasz Duszynski }; 3417c839f7STomasz Duszynski 35e99981afSDavid Marchand extern int platform_bus_logtype; 36e99981afSDavid Marchand #define RTE_LOGTYPE_PLATFORM_BUS platform_bus_logtype 37e99981afSDavid Marchand #define PLATFORM_LOG_LINE(level, ...) \ 38*2b843cacSDavid Marchand RTE_LOG_LINE(level, PLATFORM_BUS, __VA_ARGS__) 3917c839f7STomasz Duszynski 4017c839f7STomasz Duszynski /* 4117c839f7STomasz Duszynski * Iterate registered platform devices and find one that matches provided string. 4217c839f7STomasz Duszynski */ 4317c839f7STomasz Duszynski void * 4417c839f7STomasz Duszynski platform_bus_dev_iterate(const void *start, const char *str, 4517c839f7STomasz Duszynski const struct rte_dev_iterator *it __rte_unused); 4617c839f7STomasz Duszynski 4717c839f7STomasz Duszynski #endif /* PLATFORM_PRIVATE_H */ 48