1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright 2020 Mellanox Technologies, Ltd
5 #ifndef RTE_PMD_MLX5_COMMON_DEVX_H_
6 #define RTE_PMD_MLX5_COMMON_DEVX_H_
8 #include "mlx5_devx_cmds.h"
10 /* The standard page size */
11 #define MLX5_LOG_PAGE_SIZE 12
13 /* DevX Completion Queue structure. */
15 struct mlx5_devx_obj *cq; /* The CQ DevX object. */
16 void *umem_obj; /* The CQ umem object. */
18 volatile void *umem_buf;
19 volatile struct mlx5_cqe *cqes; /* The CQ ring buffer. */
21 volatile uint32_t *db_rec; /* The CQ doorbell record. */
24 /* DevX Send Queue structure. */
26 struct mlx5_devx_obj *sq; /* The SQ DevX object. */
27 void *umem_obj; /* The SQ umem object. */
29 volatile void *umem_buf;
30 volatile struct mlx5_wqe *wqes; /* The SQ ring buffer. */
31 volatile struct mlx5_aso_wqe *aso_wqes;
33 volatile uint32_t *db_rec; /* The SQ doorbell record. */
37 /* mlx5_common_devx.c */
40 void mlx5_devx_cq_destroy(struct mlx5_devx_cq *cq);
43 int mlx5_devx_cq_create(void *ctx, struct mlx5_devx_cq *cq_obj,
45 struct mlx5_devx_cq_attr *attr, int socket);
48 void mlx5_devx_sq_destroy(struct mlx5_devx_sq *sq);
51 int mlx5_devx_sq_create(void *ctx, struct mlx5_devx_sq *sq_obj,
53 struct mlx5_devx_create_sq_attr *attr, int socket);
55 #endif /* RTE_PMD_MLX5_COMMON_DEVX_H_ */