From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 2D4DAA04A5; Thu, 18 Jun 2020 08:41:33 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 099C61B3BB; Thu, 18 Jun 2020 08:41:33 +0200 (CEST) Received: from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129]) by dpdk.org (Postfix) with ESMTP id 9FB4D1B13C for ; Thu, 18 Jun 2020 08:41:31 +0200 (CEST) Received: from Internal Mail-Server by MTLPINE1 (envelope-from orika@mellanox.com) with SMTP; 18 Jun 2020 09:41:30 +0300 Received: from pegasus03.mtr.labs.mlnx. (pegasus03.mtr.labs.mlnx [10.210.16.124]) by labmailer.mlnx (8.13.8/8.13.8) with ESMTP id 05I6fUOv031456; Thu, 18 Jun 2020 09:41:30 +0300 From: Ori Kam To: matan@mellanox.com, viacheslavo@mellanox.com, Shahaf Shuler Cc: dev@dpdk.org, orika@mellanox.com, rasland@mellanox.com, ophirmu@mellanox.com Date: Thu, 18 Jun 2020 06:40:40 +0000 Message-Id: <1592462442-24191-1-git-send-email-orika@mellanox.com> X-Mailer: git-send-email 1.8.3.1 Subject: [dpdk-dev] [PATCH 1/2] net/mlx5: move getter functions from net to common X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Ophir Munk Getter functions such as: 'mlx5_os_get_ctx_device_name', 'mlx5_os_get_ctx_device_path', 'mlx5_os_get_dev_device_name', 'mlx5_os_get_umem_id' are implemented under net directory. To enable additional devices (e.g. regex, vdpa) to access these getter functions they are moved under common directory. Signed-off-by: Ophir Munk --- drivers/common/mlx5/linux/mlx5_common_os.h | 98 ++++++++++++++++++++++++++++++ drivers/net/mlx5/linux/mlx5_os.c | 74 +--------------------- drivers/net/mlx5/mlx5.c | 1 + drivers/net/mlx5/mlx5.h | 4 -- drivers/net/mlx5/mlx5_flow_dv.c | 1 + drivers/net/mlx5/mlx5_rxq.c | 1 + 6 files changed, 102 insertions(+), 77 deletions(-) create mode 100644 drivers/common/mlx5/linux/mlx5_common_os.h diff --git a/drivers/common/mlx5/linux/mlx5_common_os.h b/drivers/common/mlx5/linux/mlx5_common_os.h new file mode 100644 index 0000000..9a6872c --- /dev/null +++ b/drivers/common/mlx5/linux/mlx5_common_os.h @@ -0,0 +1,98 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright 2020 Mellanox Technologies, Ltd + */ + +#ifndef RTE_PMD_MLX5_COMMON_OS_H_ +#define RTE_PMD_MLX5_COMMON_OS_H_ + +#include + +#include +#include +#include +#include +#include +#include + +#include "mlx5_autoconf.h" +#ifdef HAVE_INFINIBAND_VERBS_H +#include +#endif +#ifdef HAVE_INFINIBAND_MLX5DV_H +#include +#endif + +/** + * Get device name. Given an ibv_device pointer - return a + * pointer to the corresponding device name. + * + * @param[in] dev + * Pointer to ibv device. + * + * @return + * Pointer to device name if dev is valid, NULL otherwise. + */ +static inline const char * +mlx5_os_get_dev_device_name(void *dev) +{ + if (!dev) + return NULL; + return ((struct ibv_device *)dev)->name; +} + +/** + * Get ibv device name. Given an ibv_context pointer - return a + * pointer to the corresponding device name. + * + * @param[in] ctx + * Pointer to ibv context. + * + * @return + * Pointer to device name if ctx is valid, NULL otherwise. + */ +static inline const char * +mlx5_os_get_ctx_device_name(void *ctx) +{ + if (!ctx) + return NULL; + return ((struct ibv_context *)ctx)->device->name; +} + +/** + * Get ibv device path name. Given an ibv_context pointer - return a + * pointer to the corresponding device path name. + * + * @param[in] ctx + * Pointer to ibv context. + * + * @return + * Pointer to device path name if ctx is valid, NULL otherwise. + */ + +static inline const char * +mlx5_os_get_ctx_device_path(void *ctx) +{ + if (!ctx) + return NULL; + + return ((struct ibv_context *)ctx)->device->ibdev_path; +} + +/** + * Get umem id. Given a pointer to umem object of type + * 'struct mlx5dv_devx_umem *' - return its id. + * + * @param[in] umem + * Pointer to umem object. + * + * @return + * The umem id if umem is valid, 0 otherwise. + */ +static inline uint32_t +mlx5_os_get_umem_id(void *umem) +{ + if (!umem) + return 0; + return ((struct mlx5dv_devx_umem *)umem)->umem_id; +} +#endif /* RTE_PMD_MLX5_COMMON_OS_H_ */ diff --git a/drivers/net/mlx5/linux/mlx5_os.c b/drivers/net/mlx5/linux/mlx5_os.c index 844c6c0..854409e 100644 --- a/drivers/net/mlx5/linux/mlx5_os.c +++ b/drivers/net/mlx5/linux/mlx5_os.c @@ -45,6 +45,7 @@ #include "mlx5_defs.h" #include "mlx5.h" +#include "mlx5_common_os.h" #include "mlx5_utils.h" #include "mlx5_rxtx.h" #include "mlx5_autoconf.h" @@ -64,79 +65,6 @@ #endif /** - * Get device name. Given an ibv_device pointer - return a - * pointer to the corresponding device name. - * - * @param[in] dev - * Pointer to ibv device. - * - * @return - * Pointer to device name if dev is valid, NULL otherwise. - */ -const char * -mlx5_os_get_dev_device_name(void *dev) -{ - if (!dev) - return NULL; - return ((struct ibv_device *)dev)->name; -} - -/** - * Get ibv device name. Given an ibv_context pointer - return a - * pointer to the corresponding device name. - * - * @param[in] ctx - * Pointer to ibv context. - * - * @return - * Pointer to device name if ctx is valid, NULL otherwise. - */ -const char * -mlx5_os_get_ctx_device_name(void *ctx) -{ - if (!ctx) - return NULL; - return ((struct ibv_context *)ctx)->device->name; -} - -/** - * Get ibv device path name. Given an ibv_context pointer - return a - * pointer to the corresponding device path name. - * - * @param[in] ctx - * Pointer to ibv context. - * - * @return - * Pointer to device path name if ctx is valid, NULL otherwise. - */ -const char * -mlx5_os_get_ctx_device_path(void *ctx) -{ - if (!ctx) - return NULL; - - return ((struct ibv_context *)ctx)->device->ibdev_path; -} - -/** - * Get umem id. Given a pointer to umem object of type - * 'struct mlx5dv_devx_umem *' - return its id. - * - * @param[in] umem - * Pointer to umem object. - * - * @return - * The umem id if umem is valid, 0 otherwise. - */ -uint32_t -mlx5_os_get_umem_id(void *umem) -{ - if (!umem) - return 0; - return ((struct mlx5dv_devx_umem *)umem)->umem_id; -} - -/** * Get mlx5 device attributes. The glue function query_device_ex() is called * with out parameter of type 'struct ibv_device_attr_ex *'. Then fill in mlx5 * device attributes from the glue out parameter. diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c index b22acbb..d914b10 100644 --- a/drivers/net/mlx5/mlx5.c +++ b/drivers/net/mlx5/mlx5.c @@ -38,6 +38,7 @@ #include #include #include +#include #include #include "mlx5_defs.h" diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h index 94a3667..96c1eb1 100644 --- a/drivers/net/mlx5/mlx5.h +++ b/drivers/net/mlx5/mlx5.h @@ -921,10 +921,6 @@ struct mlx5_flow_meter *mlx5_flow_meter_attach /* mlx5_os.c */ struct rte_pci_driver; -const char *mlx5_os_get_ctx_device_name(void *ctx); -const char *mlx5_os_get_ctx_device_path(void *ctx); -const char *mlx5_os_get_dev_device_name(void *dev); -uint32_t mlx5_os_get_umem_id(void *umem); int mlx5_os_get_dev_attr(void *ctx, struct mlx5_dev_attr *dev_attr); void mlx5_os_free_shared_dr(struct mlx5_priv *priv); int mlx5_os_open_device(const struct mlx5_dev_spawn_data *spawn, diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c index 5bb252e..f0ce195 100644 --- a/drivers/net/mlx5/mlx5_flow_dv.c +++ b/drivers/net/mlx5/mlx5_flow_dv.c @@ -36,6 +36,7 @@ #include "mlx5_defs.h" #include "mlx5.h" +#include "mlx5_common_os.h" #include "mlx5_flow.h" #include "mlx5_rxtx.h" diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c index dda0073..efd1e3f 100644 --- a/drivers/net/mlx5/mlx5_rxq.c +++ b/drivers/net/mlx5/mlx5_rxq.c @@ -34,6 +34,7 @@ #include "mlx5_defs.h" #include "mlx5.h" +#include "mlx5_common_os.h" #include "mlx5_rxtx.h" #include "mlx5_utils.h" #include "mlx5_autoconf.h" -- 1.8.3.1