xref: /dpdk/drivers/bus/platform/private.h (revision 2b843cac232eb3f2fa79e4254e21766817e2019f)
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