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 E609DA04F5; Fri, 19 Jun 2020 09:30:28 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 00CBCE07; Fri, 19 Jun 2020 09:30:27 +0200 (CEST) Received: from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129]) by dpdk.org (Postfix) with ESMTP id C34372AB for ; Fri, 19 Jun 2020 09:30:25 +0200 (CEST) Received: from Internal Mail-Server by MTLPINE1 (envelope-from orika@mellanox.com) with SMTP; 19 Jun 2020 10:30:23 +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 05J7UNlo018067; Fri, 19 Jun 2020 10:30:23 +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: Fri, 19 Jun 2020 07:30:08 +0000 Message-Id: <1592551809-43424-1-git-send-email-orika@mellanox.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1592462442-24191-1-git-send-email-orika@mellanox.com> References: <1592462442-24191-1-git-send-email-orika@mellanox.com> Subject: [dpdk-dev] [PATCH v2 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. As part of this commit string sizes DEV_SYSFS_NAME_MAX and DEV_SYSFS_PATH_MAX are increased by 1 to make sure that the destination string size in strncpy() function is bigger than the source string size. This update will avoid GCC version 8 error -Werror=stringop-truncation. Signed-off-by: Ophir Munk Acked-by: Matan Azrad --- v2: * avoid GCC version 8 error. --- drivers/common/mlx5/linux/mlx5_common_os.h | 98 ++++++++++++++++++++++++++++++ drivers/net/mlx5/linux/mlx5_os.c | 74 +--------------------- drivers/net/mlx5/linux/mlx5_os.h | 4 +- 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 + 7 files changed, 104 insertions(+), 79 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 3792371..be51193 100644 --- a/drivers/net/mlx5/linux/mlx5_os.c +++ b/drivers/net/mlx5/linux/mlx5_os.c @@ -46,6 +46,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" @@ -66,79 +67,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/linux/mlx5_os.h b/drivers/net/mlx5/linux/mlx5_os.h index f310f17..31add39 100644 --- a/drivers/net/mlx5/linux/mlx5_os.h +++ b/drivers/net/mlx5/linux/mlx5_os.h @@ -8,8 +8,8 @@ /* verb enumerations translations to local enums. */ enum { - DEV_SYSFS_NAME_MAX = IBV_SYSFS_NAME_MAX, - DEV_SYSFS_PATH_MAX = IBV_SYSFS_PATH_MAX + DEV_SYSFS_NAME_MAX = IBV_SYSFS_NAME_MAX + 1, + DEV_SYSFS_PATH_MAX = IBV_SYSFS_PATH_MAX + 1 }; #define PCI_DRV_FLAGS (RTE_PCI_DRV_INTR_LSC | \ diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c index 5c86f6f..da38eb9 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 5bd5acd..a2a2c9d 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