1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright(C) 2023 Marvell. 3 */ 4 5 #ifndef PLATFORM_PRIVATE_H 6 #define PLATFORM_PRIVATE_H 7 8 #include <bus_driver.h> 9 #include <rte_bus.h> 10 #include <rte_common.h> 11 #include <rte_dev.h> 12 #include <rte_log.h> 13 #include <rte_os.h> 14 15 #include "bus_platform_driver.h" 16 17 extern struct rte_platform_bus platform_bus; 18 19 /* Platform bus iterators. */ 20 #define FOREACH_DEVICE_ON_PLATFORM_BUS(p) \ 21 RTE_TAILQ_FOREACH(p, &(platform_bus.device_list), next) 22 23 #define FOREACH_DRIVER_ON_PLATFORM_BUS(p) \ 24 RTE_TAILQ_FOREACH(p, &(platform_bus.driver_list), next) 25 26 /* 27 * Structure describing platform bus. 28 */ 29 struct rte_platform_bus { 30 struct rte_bus bus; /* Core bus */ 31 RTE_TAILQ_HEAD(, rte_platform_device) device_list; /* List of bus devices */ 32 RTE_TAILQ_HEAD(, rte_platform_driver) driver_list; /* List of bus drivers */ 33 }; 34 35 extern int platform_bus_logtype; 36 #define RTE_LOGTYPE_PLATFORM_BUS platform_bus_logtype 37 #define PLATFORM_LOG_LINE(level, ...) \ 38 RTE_LOG_LINE(level, PLATFORM_BUS, __VA_ARGS__) 39 40 /* 41 * Iterate registered platform devices and find one that matches provided string. 42 */ 43 void * 44 platform_bus_dev_iterate(const void *start, const char *str, 45 const struct rte_dev_iterator *it __rte_unused); 46 47 #endif /* PLATFORM_PRIVATE_H */ 48