+#define HNS3_DESC_DATA_MAX 8
+#define HNS3_REG_NUM_MAX 256
+#define HNS3_DESC_NO_DATA_LEN 8
+#define HNS3_DESC_DATA_UNIT_SIZE 4
+
+enum hns3_mod_name_list {
+ MODULE_NONE,
+ MODULE_BIOS_COMMON,
+ MODULE_GE,
+ MODULE_IGU_EGU,
+ MODULE_LGE,
+ MODULE_NCSI,
+ MODULE_PPP,
+ MODULE_QCN,
+ MODULE_RCB_RX,
+ MODULE_RTC,
+ MODULE_SSU,
+ MODULE_TM,
+ MODULE_RCB_TX,
+ MODULE_TXDMA,
+ MODULE_MASTER,
+ MODULE_ROH_MAC,
+};
+
+enum hns3_err_type_list {
+ NONE_ERROR,
+ FIFO_ERROR,
+ MEMORY_ERROR,
+ POISION_ERROR,
+ MSIX_ECC_ERROR,
+ TQP_INT_ECC_ERROR,
+ PF_ABNORMAL_INT_ERROR,
+ MPF_ABNORMAL_INT_ERROR,
+ COMMON_ERROR,
+ PORT_ERROR,
+ ETS_ERROR,
+ NCSI_ERROR,
+ GLB_ERROR,
+};
+
+struct hns3_hw_mod_name {
+ enum hns3_mod_name_list module_name;
+ const char *msg;
+};
+
+struct hns3_hw_err_type {
+ enum hns3_err_type_list error_type;
+ const char *msg;
+};
+
+struct hns3_sum_err_info {
+ uint8_t reset_type; /* the total reset type */
+ uint8_t mod_num; /* the modules num encounter error */
+ uint8_t rsv[2];
+};
+
+struct hns3_mod_err_info {
+ uint8_t mod_id; /* the error module id */
+ uint8_t err_num; /* the errors num in module */
+ uint8_t rsv[2];
+};
+
+struct hns3_type_reg_err_info {
+ uint8_t type_id; /* the type id of error */
+ uint8_t reg_num; /* the related registers num of this error */
+ uint8_t rsv[2];
+ uint32_t reg[HNS3_REG_NUM_MAX]; /* the registers value */
+};
+