112206b17SAya Levin /* SPDX-License-Identifier: GPL-2.0 */
212206b17SAya Levin /* Copyright (c) 2019 Mellanox Technologies. */
312206b17SAya Levin 
412206b17SAya Levin #ifndef __MLX5_RSC_DUMP_H
5fa2b4912SNathan Chancellor #define __MLX5_RSC_DUMP_H
612206b17SAya Levin 
7d63cc249SMaor Gottlieb #include <linux/mlx5/rsc_dump.h>
812206b17SAya Levin #include <linux/mlx5/driver.h>
912206b17SAya Levin #include "mlx5_core.h"
1012206b17SAya Levin 
1112206b17SAya Levin #define MLX5_RSC_DUMP_ALL 0xFFFF
1212206b17SAya Levin struct mlx5_rsc_dump_cmd;
1312206b17SAya Levin struct mlx5_rsc_dump;
1412206b17SAya Levin 
1512206b17SAya Levin struct mlx5_rsc_dump *mlx5_rsc_dump_create(struct mlx5_core_dev *dev);
1612206b17SAya Levin void mlx5_rsc_dump_destroy(struct mlx5_core_dev *dev);
1712206b17SAya Levin 
1812206b17SAya Levin int mlx5_rsc_dump_init(struct mlx5_core_dev *dev);
1912206b17SAya Levin void mlx5_rsc_dump_cleanup(struct mlx5_core_dev *dev);
2012206b17SAya Levin 
2112206b17SAya Levin struct mlx5_rsc_dump_cmd *mlx5_rsc_dump_cmd_create(struct mlx5_core_dev *dev,
2212206b17SAya Levin 						   struct mlx5_rsc_key *key);
2312206b17SAya Levin void mlx5_rsc_dump_cmd_destroy(struct mlx5_rsc_dump_cmd *cmd);
2412206b17SAya Levin 
2512206b17SAya Levin int mlx5_rsc_dump_next(struct mlx5_core_dev *dev, struct mlx5_rsc_dump_cmd *cmd,
2612206b17SAya Levin 		       struct page *page, int *size);
2712206b17SAya Levin #endif
28