0001
0002
0003
0004 #include <linux/mlx5/driver.h>
0005
0006 #ifndef __MLX5_RSC_DUMP
0007 #define __MLX5_RSC_DUMP
0008
0009 enum mlx5_sgmt_type {
0010 MLX5_SGMT_TYPE_HW_CQPC,
0011 MLX5_SGMT_TYPE_HW_SQPC,
0012 MLX5_SGMT_TYPE_HW_RQPC,
0013 MLX5_SGMT_TYPE_FULL_SRQC,
0014 MLX5_SGMT_TYPE_FULL_CQC,
0015 MLX5_SGMT_TYPE_FULL_EQC,
0016 MLX5_SGMT_TYPE_FULL_QPC,
0017 MLX5_SGMT_TYPE_SND_BUFF,
0018 MLX5_SGMT_TYPE_RCV_BUFF,
0019 MLX5_SGMT_TYPE_SRQ_BUFF,
0020 MLX5_SGMT_TYPE_CQ_BUFF,
0021 MLX5_SGMT_TYPE_EQ_BUFF,
0022 MLX5_SGMT_TYPE_SX_SLICE,
0023 MLX5_SGMT_TYPE_SX_SLICE_ALL,
0024 MLX5_SGMT_TYPE_RDB,
0025 MLX5_SGMT_TYPE_RX_SLICE_ALL,
0026 MLX5_SGMT_TYPE_PRM_QUERY_QP,
0027 MLX5_SGMT_TYPE_PRM_QUERY_CQ,
0028 MLX5_SGMT_TYPE_PRM_QUERY_MKEY,
0029 MLX5_SGMT_TYPE_MENU,
0030 MLX5_SGMT_TYPE_TERMINATE,
0031
0032 MLX5_SGMT_TYPE_NUM,
0033 };
0034
0035 struct mlx5_rsc_key {
0036 enum mlx5_sgmt_type rsc;
0037 int index1;
0038 int index2;
0039 int num_of_obj1;
0040 int num_of_obj2;
0041 int size;
0042 };
0043
0044 struct mlx5_rsc_dump_cmd;
0045
0046 struct mlx5_rsc_dump_cmd *mlx5_rsc_dump_cmd_create(struct mlx5_core_dev *dev,
0047 struct mlx5_rsc_key *key);
0048 void mlx5_rsc_dump_cmd_destroy(struct mlx5_rsc_dump_cmd *cmd);
0049 int mlx5_rsc_dump_next(struct mlx5_core_dev *dev, struct mlx5_rsc_dump_cmd *cmd,
0050 struct page *page, int *size);
0051 #endif