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