/**

 * Copyright (c) 2025 Huawei Technologies Co., Ltd.

 * This program is free software, you can redistribute it and/or modify it under the terms and conditions of

 * CANN Open Software License Agreement Version 2.0 (the "License").

 * Please refer to the License for details. You may not use this file except in compliance with the License.

 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED,

 * INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.

 * See LICENSE in the root of the software repository for the full text of the License.

 */



#ifndef __DSMI_CMD_INFO_DEF_H__

#define __DSMI_CMD_INFO_DEF_H__



#include "dsmi_common.h"

#include "dsmi_dmp_command.h"

#include "dev_mon_iam_type.h"



#pragma GCC diagnostic push

#pragma GCC diagnostic ignored "-Wunused-variable"

DSMI_CMD_DEF_COMMON_INSTANCE(DEV_MON_CMD_GET_DEVICE_CAPABILITY, sizeof(DSMI_DAVINCHI_INFO),

                             sizeof(DSMI_DAVINCHI_INFO_DATA), STATE_MANAGE_TYPE)



DSMI_CMD_DEF_COMMON_INSTANCE(DEV_MON_CMD_GET_HEALTH_STATE, 0, sizeof(unsigned char), STATE_MANAGE_TYPE)

DSMI_CMD_DEF_COMMON_INSTANCE(DEV_MON_CMD_READ_LABEL_DATA, 1, ELABLE_DATA_MAX_LENGTH, STATE_MANAGE_TYPE)

DSMI_CMD_DEF_COMMON_INSTANCE(DEV_MON_CMD_GET_ERROR_CODE, 0, sizeof(DSMI_ERROR_CODE), STATE_MANAGE_TYPE)

DSMI_CMD_DEF_COMMON_INSTANCE(DEV_MON_CMD_GET_CHIP_TEMP, 0, sizeof(signed short), STATE_MANAGE_TYPE)

DSMI_CMD_DEF_COMMON_INSTANCE(DEV_MON_CMD_GET_POWER, 0, sizeof(signed short), STATE_MANAGE_TYPE)

DSMI_CMD_DEF_COMMON_INSTANCE(DEV_MON_CMD_GET_FW_VERSION, 0, 3, STATE_MANAGE_TYPE)

DSMI_CMD_DEF_COMMON_INSTANCE(DEV_MON_CMD_GET_VID, 0, sizeof(signed int), STATE_MANAGE_TYPE)

DSMI_CMD_DEF_COMMON_INSTANCE(DEV_MON_CMD_GET_DID, 0, sizeof(signed int), STATE_MANAGE_TYPE)

DSMI_CMD_DEF_COMMON_INSTANCE(DEV_MON_CMD_GET_SN, 0, CMD_LENGTH_INVALID, STATE_MANAGE_TYPE)

DSMI_CMD_DEF_COMMON_INSTANCE(DEV_MON_CMD_GET_SUBVID, 0, sizeof(signed int), STATE_MANAGE_TYPE)

DSMI_CMD_DEF_COMMON_INSTANCE(DEV_MON_CMD_GET_SUBDID, 0, sizeof(signed int), STATE_MANAGE_TYPE)

DSMI_CMD_DEF_COMMON_INSTANCE(DEV_MON_CMD_GET_CHIP_VOLT, 0, sizeof(unsigned short), STATE_MANAGE_TYPE)

DSMI_CMD_DEF_COMMON_INSTANCE(DEV_MON_CMD_GET_DEAD_LOG, 0, CMD_LENGTH_INVALID, STATE_MANAGE_TYPE)

DSMI_CMD_DEF_COMMON_INSTANCE(DEV_MON_CMD_GET_RUN_DATA, 0, CMD_LENGTH_INVALID, STATE_MANAGE_TYPE)

DSMI_CMD_DEF_COMMON_INSTANCE(DEV_MON_CMD_GET_BOARD_ID, 0, sizeof(unsigned short), STATE_MANAGE_TYPE)

DSMI_CMD_DEF_COMMON_INSTANCE(DEV_MON_CMD_GET_PCB_VERSION, 0, sizeof(unsigned char), STATE_MANAGE_TYPE)

DSMI_CMD_DEF_COMMON_INSTANCE(DEV_MON_CMD_GET_RESET_TIME, 0, CMD_LENGTH_INVALID, STATE_MANAGE_TYPE)

DSMI_CMD_DEF_COMMON_INSTANCE(DEV_MON_CMD_GET_FORMWARE_NAME, 0, CMD_LENGTH_INVALID, FIRMWARE_UPDATE_TYPE)

DSMI_CMD_DEF_COMMON_INSTANCE(DEV_MON_CMD_GET_FORMWARE_VER, 0, CMD_LENGTH_INVALID, FIRMWARE_UPDATE_TYPE)

DSMI_CMD_DEF_COMMON_INSTANCE(DEV_MON_CMD_GET_UPGRADE, CMD_LENGTH_INVALID, CMD_LENGTH_INVALID, FIRMWARE_UPDATE_TYPE)



DSMI_CMD_DEF_COMMON_INSTANCE(DEV_MON_CMD_GET_UPGRADE_CONTROL, CMD_LENGTH_INVALID, CMD_LENGTH_INVALID,

                             FIRMWARE_UPDATE_TYPE)

DSMI_CMD_DEF_COMMON_INSTANCE(DEV_MON_CMD_GET_UPGRADE_STATUS, CMD_LENGTH_INVALID, CMD_LENGTH_INVALID,

                             FIRMWARE_UPDATE_TYPE)

DSMI_CMD_DEF_COMMON_INSTANCE(DEV_MON_CMD_GET_BOARD_INFO, 1, sizeof(unsigned int), STATE_MANAGE_TYPE)

DSMI_CMD_DEF_COMMON_INSTANCE(DEV_MON_CMD_GET_FAN_INFO, 0, sizeof(DSMI_FAN_INFO), STATE_MANAGE_TYPE)

DSMI_CMD_DEF_COMMON_INSTANCE(DEV_MON_CMD_QUERY_ECC_STAT, 1, sizeof(DSMI_ECC_STATICS_RESULT), STATE_MANAGE_TYPE)

DSMI_CMD_DEF_COMMON_INSTANCE(DEV_MON_CMD_GET_SYSTEM_TIME, 0, sizeof(unsigned int), STATE_MANAGE_TYPE)

DSMI_CMD_DEF_COMMON_INSTANCE(DEV_MON_CMD_SET_SYSTEM_TIME, sizeof(unsigned int), 0, CONFIG_MANAGE_TYPE)

DSMI_CMD_DEF_COMMON_INSTANCE(DEV_MON_CMD_DMS_FAULT_INJECT, sizeof(DSMI_FAULT_INJECT_INFO), 0, CONFIG_MANAGE_TYPE)



/* DAVINCI COMMAND DEF */

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_GET_DIE_ID, 0, sizeof(DSMI_DIE_ID), STATE_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_GET_DIE_ID_V2, 0, sizeof(DSMI_DIE_ID), STATE_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_GET_D_INFO, 1, sizeof(unsigned int), STATE_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_GET_FLASH_D_INFO, 1, CMD_LENGTH_INVALID, STATE_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DMP_LSB_OP_CODE_UPGRADE_CTRL, CMD_LENGTH_INVALID, 0, FIRMWARE_UPDATE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_HOT_PATCH_OPERATION, CMD_LENGTH_INVALID, 0, FIRMWARE_UPDATE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_ABL_MAMI_PATCH_OPERATION, CMD_LENGTH_INVALID, 0, FIRMWARE_UPDATE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DMP_LSB_OP_CODE_UPGRADE_STATE, 0, sizeof(DSMI_HEALTH_STATE), FIRMWARE_UPDATE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DMP_LSB_OP_CODE_UPGRADE_VERSION, 1, CMD_LENGTH_INVALID, FIRMWARE_UPDATE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_CONFIG_ENABLE, sizeof(DSMI_CONFIG_PARA), 0, CONFIG_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_SET_MAC_ADDR, (sizeof(DSMI_MAC_PARA) + (unsigned long)MAC_ADDR_LEN),

    0, CONFIG_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_GET_MAC_ADDR, sizeof(DSMI_MAC_PARA), MAC_ADDR_LEN, STATE_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_GET_ENABLE, 2, 1, STATE_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_GET_D_ERRORCODE, CMD_LENGTH_INVALID, CMD_LENGTH_INVALID, STATE_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_GET_MINI_SENSOR_INFO, 1, sizeof(TAG_SENSOR_INFO), STATE_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_SET_IP_ADDR, 

    (sizeof(DSMI_PORT_PARA) + (unsigned long)DSMI_IPV6_LENTH + (unsigned long)DSMI_IPV6_LENTH), 0, CONFIG_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_GET_IP_ADDR, sizeof(DSMI_PORT_PARA), (DSMI_IPV6_LENTH + DSMI_IPV6_LENTH),

                              STATE_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_SET_GTW_ADDR, (sizeof(DSMI_PORT_PARA) + (unsigned long)DSMI_IPV6_LENTH), 0,

                              CONFIG_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_GET_GTW_ADDR, sizeof(DSMI_PORT_PARA), DSMI_IPV6_LENTH, STATE_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_GET_NET_DEV_INFO, CMD_LENGTH_INVALID, CMD_LENGTH_INVALID, STATE_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DMP_MON_CMD_GET_USER_CONFIG, 0, CMD_LENGTH_INVALID, CONFIG_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DMP_MON_CMD_SET_USER_CONFIG, CMD_LENGTH_INVALID, 0, CRITICAL_STATE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DMP_MON_CMD_CLEAR_USER_CONFIG, CMD_LENGTH_INVALID, 0, CRITICAL_STATE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_GET_NETWORK_HEALTH, 0, sizeof(unsigned int), STATE_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_GET_ERRSTR, (sizeof(unsigned int) + sizeof(int)), DSMI_BB_EVENTSTR_LENGTH,

                              STATE_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_GET_LLC_PERF_PARA, 0, sizeof(DSMI_LLC_RX_RESULT), STATE_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_GET_AICPU_INFO, 0, sizeof(DSMI_AICPU_INFO), STATE_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_SET_REVOCATION, CMD_LENGTH_INVALID, 0, CRITICAL_STATE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_SET_POWER_STATE, sizeof(struct dsmi_power_state_info_stru), 0,

                              CRITICAL_STATE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_GET_HISSSTATUS, 0, sizeof(struct dsmi_hiss_status_stru), STATE_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_GET_LPSTATUS, 0, sizeof(struct dsmi_lp_status_stru), STATE_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_GET_CAN_STATUS, CMD_LENGTH_INVALID, sizeof(struct dsmi_can_status_stru),

                              STATE_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_GET_UFS_STATUS, 0, sizeof(struct dsmi_ufs_status_stru), STATE_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_GET_SENSORHUB_STATUS, 0, sizeof(struct dsmi_sensorhub_status_stru),

                              STATE_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_GET_CAN_CONFIG, 0, sizeof(struct dsmi_can_config_stru), STATE_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_GET_SENSORHUB_CONFIG, 0, sizeof(struct dsmi_sensorhub_config_stru),

                              STATE_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_GET_GPIO_STATUS, sizeof(unsigned int), sizeof(unsigned int),

                              STATE_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_GET_SOC_HW_FAULT, 0, sizeof(struct dsmi_emu_subsys_state_stru),

                              STATE_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_GET_SAFETYISLAND_STATUS, 0, sizeof(struct dsmi_safetyisland_status_stru),

                              STATE_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_GET_CGROUP_INFO, 0, sizeof(struct tag_cgroup_info), STATE_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_GET_DETECT_INFO, CMD_LENGTH_INVALID, CMD_LENGTH_INVALID, CRITICAL_STATE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_GET_DEVICE_INFO, CMD_LENGTH_INVALID, CMD_LENGTH_INVALID, STATE_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_GET_DEVICE_INFO_CRITICAL, CMD_LENGTH_INVALID, CMD_LENGTH_INVALID, FIRMWARE_UPDATE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_SET_DEVICE_INFO_CRITICAL, CMD_LENGTH_INVALID, CMD_LENGTH_INVALID, FIRMWARE_UPDATE_TYPE)



DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_CREATE_CAPABILITY_GROUP, CMD_LENGTH_INVALID, CMD_LENGTH_INVALID,

                              CONFIG_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_DELETE_CAPABILITY_GROUP, CMD_LENGTH_INVALID, CMD_LENGTH_INVALID,

                              CONFIG_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_GET_CAPABILITY_GROUP_INFO, CMD_LENGTH_INVALID, CMD_LENGTH_INVALID,

                              STATE_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_GET_LAST_BOOTSTATE, CMD_LENGTH_INVALID, CMD_LENGTH_INVALID,

                              STATE_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_CTRL_DEVICE_NODE, CMD_LENGTH_INVALID, CMD_LENGTH_INVALID,

                              CONFIG_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_GET_ALL_DEVICE_NODE, CMD_LENGTH_INVALID, CMD_LENGTH_INVALID,

                              STATE_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_GET_FLASH_CONTENT, CMD_LENGTH_INVALID, CMD_LENGTH_INVALID,

                              STATE_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_SET_FLASH_CONTENT, CMD_LENGTH_INVALID, CMD_LENGTH_INVALID,

                              CONFIG_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_SET_DEVICE_INFO, CMD_LENGTH_INVALID, CMD_LENGTH_INVALID, CONFIG_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_SET_DETECT_INFO, CMD_LENGTH_INVALID, CMD_LENGTH_INVALID, CRITICAL_STATE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_SET_DEVICE_INFO_EX, CMD_LENGTH_INVALID, CMD_LENGTH_INVALID,

                              CONFIG_MANAGE_TYPE)



DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_GET_ISOLATED_PAGES_INFO, sizeof(unsigned char),

                              sizeof(struct dsmi_ecc_pages_stru), STATE_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_CLEAR_ISOLATED_INFO, 0, 0, CONFIG_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_GET_REBOOT_REASON, 0, sizeof(struct dsmi_reboot_reason),

                              STATE_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_GET_BIST_INFO, CMD_LENGTH_INVALID, CMD_LENGTH_INVALID, STATE_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_SET_BIST_INFO, CMD_LENGTH_INVALID, CMD_LENGTH_INVALID, CONFIG_MANAGE_TYPE)

DSMI_CMD_DEF_DAVINCI_INSTANCE(DEV_MON_CMD_D_GET_DEVICE_STATE, CMD_LENGTH_INVALID, CMD_LENGTH_INVALID, STATE_MANAGE_TYPE)

#pragma GCC diagnostic pop

#endif