1*ad435d32SXueming Li /* SPDX-License-Identifier: BSD-3-Clause 2*ad435d32SXueming Li * Copyright 2021 Mellanox Technologies, Ltd 3*ad435d32SXueming Li */ 4*ad435d32SXueming Li 5*ad435d32SXueming Li #ifndef MLX5_COMMON_PRIVATE_H 6*ad435d32SXueming Li #define MLX5_COMMON_PRIVATE_H 7*ad435d32SXueming Li 8*ad435d32SXueming Li #include <rte_pci.h> 9*ad435d32SXueming Li 10*ad435d32SXueming Li #include "mlx5_common.h" 11*ad435d32SXueming Li 12*ad435d32SXueming Li #ifdef __cplusplus 13*ad435d32SXueming Li extern "C" { 14*ad435d32SXueming Li #endif /* __cplusplus */ 15*ad435d32SXueming Li 16*ad435d32SXueming Li /* Common bus driver: */ 17*ad435d32SXueming Li 18*ad435d32SXueming Li struct mlx5_common_device { 19*ad435d32SXueming Li struct rte_device *dev; 20*ad435d32SXueming Li TAILQ_ENTRY(mlx5_common_device) next; 21*ad435d32SXueming Li uint32_t classes_loaded; 22*ad435d32SXueming Li }; 23*ad435d32SXueming Li 24*ad435d32SXueming Li int mlx5_common_dev_probe(struct rte_device *eal_dev); 25*ad435d32SXueming Li int mlx5_common_dev_remove(struct rte_device *eal_dev); 26*ad435d32SXueming Li int mlx5_common_dev_dma_map(struct rte_device *dev, void *addr, uint64_t iova, 27*ad435d32SXueming Li size_t len); 28*ad435d32SXueming Li int mlx5_common_dev_dma_unmap(struct rte_device *dev, void *addr, uint64_t iova, 29*ad435d32SXueming Li size_t len); 30*ad435d32SXueming Li 31*ad435d32SXueming Li /* Common PCI bus driver: */ 32*ad435d32SXueming Li 33*ad435d32SXueming Li void mlx5_common_driver_on_register_pci(struct mlx5_class_driver *driver); 34*ad435d32SXueming Li bool mlx5_dev_pci_match(const struct mlx5_class_driver *drv, 35*ad435d32SXueming Li const struct rte_device *dev); 36*ad435d32SXueming Li 37*ad435d32SXueming Li #ifdef __cplusplus 38*ad435d32SXueming Li } 39*ad435d32SXueming Li #endif /* __cplusplus */ 40*ad435d32SXueming Li 41*ad435d32SXueming Li #endif /* MLX5_COMMON_PRIVATE_H */ 42