Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0+ */
0002 /* Copyright (c) 2021 Hisilicon Limited. */
0003 
0004 #ifndef __HNS3_DEBUGFS_H
0005 #define __HNS3_DEBUGFS_H
0006 
0007 #include "hnae3.h"
0008 
0009 #define HNS3_DBG_READ_LEN   65536
0010 #define HNS3_DBG_READ_LEN_128KB 0x20000
0011 #define HNS3_DBG_READ_LEN_1MB   0x100000
0012 #define HNS3_DBG_READ_LEN_4MB   0x400000
0013 #define HNS3_DBG_WRITE_LEN  1024
0014 
0015 #define HNS3_DBG_DATA_STR_LEN   32
0016 #define HNS3_DBG_INFO_LEN   256
0017 #define HNS3_DBG_ITEM_NAME_LEN  32
0018 #define HNS3_DBG_FILE_NAME_LEN  16
0019 
0020 struct hns3_dbg_item {
0021     char name[HNS3_DBG_ITEM_NAME_LEN];
0022     u16 interval; /* blank numbers after the item */
0023 };
0024 
0025 struct hns3_dbg_data {
0026     struct hnae3_handle *handle;
0027     enum hnae3_dbg_cmd cmd;
0028     u16 qid;
0029 };
0030 
0031 enum hns3_dbg_dentry_type {
0032     HNS3_DBG_DENTRY_TM,
0033     HNS3_DBG_DENTRY_TX_BD,
0034     HNS3_DBG_DENTRY_RX_BD,
0035     HNS3_DBG_DENTRY_MAC,
0036     HNS3_DBG_DENTRY_REG,
0037     HNS3_DBG_DENTRY_QUEUE,
0038     HNS3_DBG_DENTRY_FD,
0039     HNS3_DBG_DENTRY_COMMON,
0040 };
0041 
0042 struct hns3_dbg_dentry_info {
0043     const char *name;
0044     struct dentry *dentry;
0045 };
0046 
0047 struct hns3_dbg_cmd_info {
0048     const char *name;
0049     enum hnae3_dbg_cmd cmd;
0050     enum hns3_dbg_dentry_type dentry;
0051     u32 buf_len;
0052     int (*init)(struct hnae3_handle *handle, unsigned int cmd);
0053 };
0054 
0055 struct hns3_dbg_func {
0056     enum hnae3_dbg_cmd cmd;
0057     int (*dbg_dump)(struct hnae3_handle *handle, char *buf, int len);
0058     int (*dbg_dump_bd)(struct hns3_dbg_data *data, char *buf, int len);
0059 };
0060 
0061 struct hns3_dbg_cap_info {
0062     const char *name;
0063     enum HNAE3_DEV_CAP_BITS cap_bit;
0064 };
0065 
0066 #endif