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 8e76e6886SJiaran Zhang #define HNS3_DBG_READ_LEN_128KB 0x20000 9e44c495dSHao Chen #define HNS3_DBG_READ_LEN_1MB 0x100000 1077e91848SHuazhong Tan #define HNS3_DBG_READ_LEN_4MB 0x400000 115e69ea7eSYufeng Mo #define HNS3_DBG_WRITE_LEN 1024 125e69ea7eSYufeng Mo 1377e91848SHuazhong Tan #define HNS3_DBG_DATA_STR_LEN 32 1477e91848SHuazhong Tan #define HNS3_DBG_INFO_LEN 256 1577e91848SHuazhong Tan #define HNS3_DBG_ITEM_NAME_LEN 32 1677e91848SHuazhong Tan #define HNS3_DBG_FILE_NAME_LEN 16 1777e91848SHuazhong Tan 1877e91848SHuazhong Tan struct hns3_dbg_item { 1977e91848SHuazhong Tan char name[HNS3_DBG_ITEM_NAME_LEN]; 2077e91848SHuazhong Tan u16 interval; /* blank numbers after the item */ 2177e91848SHuazhong Tan }; 2277e91848SHuazhong Tan 2377e91848SHuazhong Tan struct hns3_dbg_data { 2477e91848SHuazhong Tan struct hnae3_handle *handle; 25*55649d56SYufeng Mo enum hnae3_dbg_cmd cmd; 2677e91848SHuazhong Tan u16 qid; 2777e91848SHuazhong Tan }; 2877e91848SHuazhong Tan 295e69ea7eSYufeng Mo enum hns3_dbg_dentry_type { 305e69ea7eSYufeng Mo HNS3_DBG_DENTRY_TM, 3177e91848SHuazhong Tan HNS3_DBG_DENTRY_TX_BD, 3277e91848SHuazhong Tan HNS3_DBG_DENTRY_RX_BD, 331556ea91SHuazhong Tan HNS3_DBG_DENTRY_MAC, 34d96b0e59SYufeng Mo HNS3_DBG_DENTRY_REG, 35d2f737cfSHao Chen HNS3_DBG_DENTRY_QUEUE, 36b5a0b70dSHao Chen HNS3_DBG_DENTRY_FD, 375e69ea7eSYufeng Mo HNS3_DBG_DENTRY_COMMON, 385e69ea7eSYufeng Mo }; 395e69ea7eSYufeng Mo 405e69ea7eSYufeng Mo struct hns3_dbg_dentry_info { 415e69ea7eSYufeng Mo const char *name; 425e69ea7eSYufeng Mo struct dentry *dentry; 435e69ea7eSYufeng Mo }; 445e69ea7eSYufeng Mo 455e69ea7eSYufeng Mo struct hns3_dbg_cmd_info { 465e69ea7eSYufeng Mo const char *name; 475e69ea7eSYufeng Mo enum hnae3_dbg_cmd cmd; 485e69ea7eSYufeng Mo enum hns3_dbg_dentry_type dentry; 495e69ea7eSYufeng Mo u32 buf_len; 505e69ea7eSYufeng Mo char *buf; 515e69ea7eSYufeng Mo int (*init)(struct hnae3_handle *handle, unsigned int cmd); 525e69ea7eSYufeng Mo }; 535e69ea7eSYufeng Mo 54c929bc2aSJiaran Zhang struct hns3_dbg_func { 55c929bc2aSJiaran Zhang enum hnae3_dbg_cmd cmd; 56c929bc2aSJiaran Zhang int (*dbg_dump)(struct hnae3_handle *handle, char *buf, int len); 5777e91848SHuazhong Tan int (*dbg_dump_bd)(struct hns3_dbg_data *data, char *buf, int len); 58c929bc2aSJiaran Zhang }; 59c929bc2aSJiaran Zhang 60c929bc2aSJiaran Zhang struct hns3_dbg_cap_info { 61c929bc2aSJiaran Zhang const char *name; 62c929bc2aSJiaran Zhang enum HNAE3_DEV_CAP_BITS cap_bit; 63c929bc2aSJiaran Zhang }; 64c929bc2aSJiaran Zhang 655e69ea7eSYufeng Mo #endif 66