common/mlx5: move some getter functions from net driver
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 <ophirmu@mellanox.com> Acked-by: Matan Azrad <matan@mellanox.com>
This commit is contained in:
parent
ac79183dc6
commit
391b8bcc81
98
drivers/common/mlx5/linux/mlx5_common_os.h
Normal file
98
drivers/common/mlx5/linux/mlx5_common_os.h
Normal file
@ -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 <stdio.h>
|
||||
|
||||
#include <rte_pci.h>
|
||||
#include <rte_debug.h>
|
||||
#include <rte_atomic.h>
|
||||
#include <rte_log.h>
|
||||
#include <rte_kvargs.h>
|
||||
#include <rte_devargs.h>
|
||||
|
||||
#include "mlx5_autoconf.h"
|
||||
#ifdef HAVE_INFINIBAND_VERBS_H
|
||||
#include <infiniband/verbs.h>
|
||||
#endif
|
||||
#ifdef HAVE_INFINIBAND_MLX5DV_H
|
||||
#include <infiniband/mlx5dv.h>
|
||||
#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_ */
|
@ -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"
|
||||
@ -65,79 +66,6 @@
|
||||
#define MLX5DV_CONTEXT_FLAGS_CQE_128B_COMP (1 << 4)
|
||||
#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
|
||||
|
@ -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 | \
|
||||
|
@ -38,6 +38,7 @@
|
||||
#include <mlx5_glue.h>
|
||||
#include <mlx5_devx_cmds.h>
|
||||
#include <mlx5_common.h>
|
||||
#include <mlx5_common_os.h>
|
||||
#include <mlx5_common_mp.h>
|
||||
|
||||
#include "mlx5_defs.h"
|
||||
|
@ -932,10 +932,6 @@ void mlx5_flow_meter_detach(struct mlx5_flow_meter *fm);
|
||||
|
||||
/* 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,
|
||||
|
@ -36,6 +36,7 @@
|
||||
|
||||
#include "mlx5_defs.h"
|
||||
#include "mlx5.h"
|
||||
#include "mlx5_common_os.h"
|
||||
#include "mlx5_flow.h"
|
||||
#include "mlx5_rxtx.h"
|
||||
|
||||
|
@ -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"
|
||||
|
Loading…
x
Reference in New Issue
Block a user