X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fcommon%2Fmlx5%2Fmlx5_common_devx.h;h=aad0184e5acb67ddfdc0d4d0724b9190d661f4e2;hb=d0cf77e8c2b64319057f5f629a7a595ce6e8b556;hp=20d5da092589492479e197a086ec72800196e0f7;hpb=9dab4d62b4dc10145e6f998931fea19195c8fdf6;p=dpdk.git diff --git a/drivers/common/mlx5/mlx5_common_devx.h b/drivers/common/mlx5/mlx5_common_devx.h index 20d5da0925..aad0184e5a 100644 --- a/drivers/common/mlx5/mlx5_common_devx.h +++ b/drivers/common/mlx5/mlx5_common_devx.h @@ -7,6 +7,9 @@ #include "mlx5_devx_cmds.h" +/* The standard page size */ +#define MLX5_LOG_PAGE_SIZE 12 + /* DevX Completion Queue structure. */ struct mlx5_devx_cq { struct mlx5_devx_obj *cq; /* The CQ DevX object. */ @@ -18,6 +21,26 @@ struct mlx5_devx_cq { volatile uint32_t *db_rec; /* The CQ doorbell record. */ }; +/* DevX Send Queue structure. */ +struct mlx5_devx_sq { + struct mlx5_devx_obj *sq; /* The SQ DevX object. */ + void *umem_obj; /* The SQ umem object. */ + union { + volatile void *umem_buf; + volatile struct mlx5_wqe *wqes; /* The SQ ring buffer. */ + volatile struct mlx5_aso_wqe *aso_wqes; + }; + volatile uint32_t *db_rec; /* The SQ doorbell record. */ +}; + +/* DevX Receive Queue structure. */ +struct mlx5_devx_rq { + struct mlx5_devx_obj *rq; /* The RQ DevX object. */ + void *umem_obj; /* The RQ umem object. */ + volatile void *umem_buf; + volatile uint32_t *db_rec; /* The RQ doorbell record. */ +}; + /* mlx5_common_devx.c */ __rte_internal @@ -25,7 +48,23 @@ void mlx5_devx_cq_destroy(struct mlx5_devx_cq *cq); __rte_internal int mlx5_devx_cq_create(void *ctx, struct mlx5_devx_cq *cq_obj, - uint16_t log_desc_n, struct mlx5_devx_cq_attr *attr, - int socket); + uint16_t log_desc_n, + struct mlx5_devx_cq_attr *attr, int socket); + +__rte_internal +void mlx5_devx_sq_destroy(struct mlx5_devx_sq *sq); + +__rte_internal +int mlx5_devx_sq_create(void *ctx, struct mlx5_devx_sq *sq_obj, + uint16_t log_wqbb_n, + struct mlx5_devx_create_sq_attr *attr, int socket); + +__rte_internal +void mlx5_devx_rq_destroy(struct mlx5_devx_rq *rq); + +__rte_internal +int mlx5_devx_rq_create(void *ctx, struct mlx5_devx_rq *rq_obj, + uint32_t wqe_size, uint16_t log_wqbb_n, + struct mlx5_devx_create_rq_attr *attr, int socket); #endif /* RTE_PMD_MLX5_COMMON_DEVX_H_ */