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