xref: /dpdk/drivers/common/mlx5/mlx5_common_private.h (revision b3f89090d667a3ab29e8327242dbc0c12d8b7262)
1ad435d32SXueming Li /* SPDX-License-Identifier: BSD-3-Clause
2ad435d32SXueming Li  * Copyright 2021 Mellanox Technologies, Ltd
3ad435d32SXueming Li  */
4ad435d32SXueming Li 
5ad435d32SXueming Li #ifndef MLX5_COMMON_PRIVATE_H
6ad435d32SXueming Li #define MLX5_COMMON_PRIVATE_H
7ad435d32SXueming Li 
8ad435d32SXueming Li #include <rte_pci.h>
9*b3f89090SDavid Marchand #include <bus_auxiliary_driver.h>
10ad435d32SXueming Li 
11ad435d32SXueming Li #include "mlx5_common.h"
12ad435d32SXueming Li 
13ad435d32SXueming Li #ifdef __cplusplus
14ad435d32SXueming Li extern "C" {
15ad435d32SXueming Li #endif /* __cplusplus */
16ad435d32SXueming Li 
17ad435d32SXueming Li /* Common bus driver: */
18ad435d32SXueming Li 
19ad435d32SXueming Li int mlx5_common_dev_probe(struct rte_device *eal_dev);
20ad435d32SXueming Li int mlx5_common_dev_remove(struct rte_device *eal_dev);
21ad435d32SXueming Li int mlx5_common_dev_dma_map(struct rte_device *dev, void *addr, uint64_t iova,
22ad435d32SXueming Li 			    size_t len);
23ad435d32SXueming Li int mlx5_common_dev_dma_unmap(struct rte_device *dev, void *addr, uint64_t iova,
24ad435d32SXueming Li 			      size_t len);
25ad435d32SXueming Li 
26ad435d32SXueming Li /* Common PCI bus driver: */
27ad435d32SXueming Li 
28d3c52126SXueming Li void mlx5_common_pci_init(void);
29ad435d32SXueming Li void mlx5_common_driver_on_register_pci(struct mlx5_class_driver *driver);
30ad435d32SXueming Li bool mlx5_dev_pci_match(const struct mlx5_class_driver *drv,
31ad435d32SXueming Li 			const struct rte_device *dev);
32ad435d32SXueming Li 
33777b72a9SXueming Li /* Common auxiliary bus driver: */
34777b72a9SXueming Li void mlx5_common_auxiliary_init(void);
35777b72a9SXueming Li struct ibv_device *mlx5_get_aux_ibv_device(
36777b72a9SXueming Li 		const struct rte_auxiliary_device *dev);
374d567938SThomas Monjalon int mlx5_auxiliary_get_pci_str(const struct rte_auxiliary_device *dev,
384d567938SThomas Monjalon 			       char *addr, size_t size);
39777b72a9SXueming Li 
40ad435d32SXueming Li #ifdef __cplusplus
41ad435d32SXueming Li }
42ad435d32SXueming Li #endif /* __cplusplus */
43ad435d32SXueming Li 
44ad435d32SXueming Li #endif /* MLX5_COMMON_PRIVATE_H */
45