15e69ea7eSYufeng Mo /* SPDX-License-Identifier: GPL-2.0+ */ 25e69ea7eSYufeng Mo /* Copyright (c) 2021 Hisilicon Limited. */ 35e69ea7eSYufeng Mo 45e69ea7eSYufeng Mo #ifndef __HNS3_DEBUGFS_H 55e69ea7eSYufeng Mo #define __HNS3_DEBUGFS_H 65e69ea7eSYufeng Mo 75e69ea7eSYufeng Mo #define HNS3_DBG_READ_LEN 65536 877e91848SHuazhong Tan #define HNS3_DBG_READ_LEN_4MB 0x400000 95e69ea7eSYufeng Mo #define HNS3_DBG_WRITE_LEN 1024 105e69ea7eSYufeng Mo 1177e91848SHuazhong Tan #define HNS3_DBG_DATA_STR_LEN 32 1277e91848SHuazhong Tan #define HNS3_DBG_INFO_LEN 256 1377e91848SHuazhong Tan #define HNS3_DBG_ITEM_NAME_LEN 32 1477e91848SHuazhong Tan #define HNS3_DBG_FILE_NAME_LEN 16 1577e91848SHuazhong Tan 1677e91848SHuazhong Tan struct hns3_dbg_item { 1777e91848SHuazhong Tan char name[HNS3_DBG_ITEM_NAME_LEN]; 1877e91848SHuazhong Tan u16 interval; /* blank numbers after the item */ 1977e91848SHuazhong Tan }; 2077e91848SHuazhong Tan 2177e91848SHuazhong Tan struct hns3_dbg_data { 2277e91848SHuazhong Tan struct hnae3_handle *handle; 2377e91848SHuazhong Tan u16 qid; 2477e91848SHuazhong Tan }; 2577e91848SHuazhong Tan 265e69ea7eSYufeng Mo enum hns3_dbg_dentry_type { 275e69ea7eSYufeng Mo HNS3_DBG_DENTRY_TM, 2877e91848SHuazhong Tan HNS3_DBG_DENTRY_TX_BD, 2977e91848SHuazhong Tan HNS3_DBG_DENTRY_RX_BD, 30*1556ea91SHuazhong Tan HNS3_DBG_DENTRY_MAC, 315e69ea7eSYufeng Mo HNS3_DBG_DENTRY_COMMON, 325e69ea7eSYufeng Mo }; 335e69ea7eSYufeng Mo 345e69ea7eSYufeng Mo struct hns3_dbg_dentry_info { 355e69ea7eSYufeng Mo const char *name; 365e69ea7eSYufeng Mo struct dentry *dentry; 375e69ea7eSYufeng Mo }; 385e69ea7eSYufeng Mo 395e69ea7eSYufeng Mo struct hns3_dbg_cmd_info { 405e69ea7eSYufeng Mo const char *name; 415e69ea7eSYufeng Mo enum hnae3_dbg_cmd cmd; 425e69ea7eSYufeng Mo enum hns3_dbg_dentry_type dentry; 435e69ea7eSYufeng Mo u32 buf_len; 445e69ea7eSYufeng Mo char *buf; 455e69ea7eSYufeng Mo int (*init)(struct hnae3_handle *handle, unsigned int cmd); 465e69ea7eSYufeng Mo }; 475e69ea7eSYufeng Mo 48c929bc2aSJiaran Zhang struct hns3_dbg_func { 49c929bc2aSJiaran Zhang enum hnae3_dbg_cmd cmd; 50c929bc2aSJiaran Zhang int (*dbg_dump)(struct hnae3_handle *handle, char *buf, int len); 5177e91848SHuazhong Tan int (*dbg_dump_bd)(struct hns3_dbg_data *data, char *buf, int len); 52c929bc2aSJiaran Zhang }; 53c929bc2aSJiaran Zhang 54c929bc2aSJiaran Zhang struct hns3_dbg_cap_info { 55c929bc2aSJiaran Zhang const char *name; 56c929bc2aSJiaran Zhang enum HNAE3_DEV_CAP_BITS cap_bit; 57c929bc2aSJiaran Zhang }; 58c929bc2aSJiaran Zhang 595e69ea7eSYufeng Mo #endif 60