brintos

brintos / linux-shallow public Read only

0
0
Text · 1.5 KiB · a7e3dc5 Raw
70 lines · c
1/* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */2/*3 * Copyright (c) 2013-2018, Mellanox Technologies. All rights reserved.4 */5 6#ifndef MLX5_IB_SRQ_H7#define MLX5_IB_SRQ_H8 9enum {10	MLX5_SRQ_FLAG_ERR    = (1 << 0),11	MLX5_SRQ_FLAG_WQ_SIG = (1 << 1),12	MLX5_SRQ_FLAG_RNDV   = (1 << 2),13};14 15struct mlx5_srq_attr {16	u32 type;17	u32 flags;18	u32 log_size;19	u32 wqe_shift;20	u32 log_page_size;21	u32 wqe_cnt;22	u32 srqn;23	u32 xrcd;24	u32 page_offset;25	u32 cqn;26	u32 pd;27	u32 lwm;28	u32 user_index;29	u64 db_record;30	__be64 *pas;31	struct ib_umem *umem;32	u32 tm_log_list_size;33	u32 tm_next_tag;34	u32 tm_hw_phase_cnt;35	u32 tm_sw_phase_cnt;36	u16 uid;37};38 39struct mlx5_ib_dev;40 41struct mlx5_core_srq {42	struct mlx5_core_rsc_common common; /* must be first */43	u32 srqn;44	int max;45	size_t max_gs;46	size_t max_avail_gather;47	int wqe_shift;48	void (*event)(struct mlx5_core_srq *srq, enum mlx5_event e);49 50	u16 uid;51};52 53struct mlx5_srq_table {54	struct notifier_block nb;55	struct xarray array;56};57 58int mlx5_cmd_create_srq(struct mlx5_ib_dev *dev, struct mlx5_core_srq *srq,59			struct mlx5_srq_attr *in);60int mlx5_cmd_destroy_srq(struct mlx5_ib_dev *dev, struct mlx5_core_srq *srq);61int mlx5_cmd_query_srq(struct mlx5_ib_dev *dev, struct mlx5_core_srq *srq,62		       struct mlx5_srq_attr *out);63int mlx5_cmd_arm_srq(struct mlx5_ib_dev *dev, struct mlx5_core_srq *srq,64		     u16 lwm, int is_srq);65struct mlx5_core_srq *mlx5_cmd_get_srq(struct mlx5_ib_dev *dev, u32 srqn);66 67int mlx5_init_srq_table(struct mlx5_ib_dev *dev);68void mlx5_cleanup_srq_table(struct mlx5_ib_dev *dev);69#endif /* MLX5_IB_SRQ_H */70