xref: /openbmc/linux/include/linux/mlx5/rsc_dump.h (revision 4b4193256c8d3bc3a5397b5cd9494c2ad386317d)
1  /* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */
2  /* Copyright (c) 2020 Mellanox Technologies inc. */
3  
4  #include <linux/mlx5/driver.h>
5  
6  #ifndef __MLX5_RSC_DUMP
7  #define __MLX5_RSC_DUMP
8  
9  enum mlx5_sgmt_type {
10  	MLX5_SGMT_TYPE_HW_CQPC,
11  	MLX5_SGMT_TYPE_HW_SQPC,
12  	MLX5_SGMT_TYPE_HW_RQPC,
13  	MLX5_SGMT_TYPE_FULL_SRQC,
14  	MLX5_SGMT_TYPE_FULL_CQC,
15  	MLX5_SGMT_TYPE_FULL_EQC,
16  	MLX5_SGMT_TYPE_FULL_QPC,
17  	MLX5_SGMT_TYPE_SND_BUFF,
18  	MLX5_SGMT_TYPE_RCV_BUFF,
19  	MLX5_SGMT_TYPE_SRQ_BUFF,
20  	MLX5_SGMT_TYPE_CQ_BUFF,
21  	MLX5_SGMT_TYPE_EQ_BUFF,
22  	MLX5_SGMT_TYPE_SX_SLICE,
23  	MLX5_SGMT_TYPE_SX_SLICE_ALL,
24  	MLX5_SGMT_TYPE_RDB,
25  	MLX5_SGMT_TYPE_RX_SLICE_ALL,
26  	MLX5_SGMT_TYPE_PRM_QUERY_QP,
27  	MLX5_SGMT_TYPE_PRM_QUERY_CQ,
28  	MLX5_SGMT_TYPE_PRM_QUERY_MKEY,
29  	MLX5_SGMT_TYPE_MENU,
30  	MLX5_SGMT_TYPE_TERMINATE,
31  
32  	MLX5_SGMT_TYPE_NUM, /* Keep last */
33  };
34  
35  struct mlx5_rsc_key {
36  	enum mlx5_sgmt_type rsc;
37  	int index1;
38  	int index2;
39  	int num_of_obj1;
40  	int num_of_obj2;
41  	int size;
42  };
43  
44  struct mlx5_rsc_dump_cmd;
45  
46  struct mlx5_rsc_dump_cmd *mlx5_rsc_dump_cmd_create(struct mlx5_core_dev *dev,
47  						   struct mlx5_rsc_key *key);
48  void mlx5_rsc_dump_cmd_destroy(struct mlx5_rsc_dump_cmd *cmd);
49  int mlx5_rsc_dump_next(struct mlx5_core_dev *dev, struct mlx5_rsc_dump_cmd *cmd,
50  		       struct page *page, int *size);
51  #endif /* __MLX5_RSC_DUMP */
52