/*
 * This file is auto-generated, do not modify!
 *
 * SPDX-License-Identifier: LGPL-2.1-or-later
 */

#pragma once
#include <fu-input-stream.h>
/**
 * FuQsiDockFirmwareIdx:
 */
typedef enum {
    /**
     * FU_QSI_DOCK_FIRMWARE_IDX_NONE:
     */
    FU_QSI_DOCK_FIRMWARE_IDX_NONE = 0,
    /**
     * FU_QSI_DOCK_FIRMWARE_IDX_DMC_PD:
     */
    FU_QSI_DOCK_FIRMWARE_IDX_DMC_PD = 1 << 0,
    /**
     * FU_QSI_DOCK_FIRMWARE_IDX_DP:
     */
    FU_QSI_DOCK_FIRMWARE_IDX_DP = 1 << 1,
    /**
     * FU_QSI_DOCK_FIRMWARE_IDX_TBT4:
     */
    FU_QSI_DOCK_FIRMWARE_IDX_TBT4 = 1 << 2,
    /**
     * FU_QSI_DOCK_FIRMWARE_IDX_USB3:
     */
    FU_QSI_DOCK_FIRMWARE_IDX_USB3 = 1 << 3,
    /**
     * FU_QSI_DOCK_FIRMWARE_IDX_USB2:
     */
    FU_QSI_DOCK_FIRMWARE_IDX_USB2 = 1 << 4,
    /**
     * FU_QSI_DOCK_FIRMWARE_IDX_AUDIO:
     */
    FU_QSI_DOCK_FIRMWARE_IDX_AUDIO = 1 << 5,
    /**
     * FU_QSI_DOCK_FIRMWARE_IDX_I225:
     */
    FU_QSI_DOCK_FIRMWARE_IDX_I225 = 1 << 6,
    /**
     * FU_QSI_DOCK_FIRMWARE_IDX_MCU:
     */
    FU_QSI_DOCK_FIRMWARE_IDX_MCU = 1 << 7,
} G_GNUC_FLAG_ENUM FuQsiDockFirmwareIdx;
/**
 * FuQsiDockCmd1:
 */
typedef enum {
    /**
     * FU_QSI_DOCK_CMD1_BOOT:
     */
    FU_QSI_DOCK_CMD1_BOOT = 0x11,
    /**
     * FU_QSI_DOCK_CMD1_SYSTEM:
     */
    FU_QSI_DOCK_CMD1_SYSTEM = 0x31,
    /**
     * FU_QSI_DOCK_CMD1_MCU:
     */
    FU_QSI_DOCK_CMD1_MCU = 0x51,
    /**
     * FU_QSI_DOCK_CMD1_SPI:
     */
    FU_QSI_DOCK_CMD1_SPI = 0x61,
    /**
     * FU_QSI_DOCK_CMD1_I2C_VMM:
     */
    FU_QSI_DOCK_CMD1_I2C_VMM = 0x71,
    /**
     * FU_QSI_DOCK_CMD1_I2C_CCG:
     */
    FU_QSI_DOCK_CMD1_I2C_CCG = 0x81,
    /**
     * FU_QSI_DOCK_CMD1_MASS_MCU:
     */
    FU_QSI_DOCK_CMD1_MASS_MCU = 0xC0,
    /**
     * FU_QSI_DOCK_CMD1_MASS_SPI:
     */
    FU_QSI_DOCK_CMD1_MASS_SPI,
    /**
     * FU_QSI_DOCK_CMD1_MASS_I2C_VMM:
     */
    FU_QSI_DOCK_CMD1_MASS_I2C_VMM,
    /**
     * FU_QSI_DOCK_CMD1_MASS_I2C_CY:
     */
    FU_QSI_DOCK_CMD1_MASS_I2C_CY,
}  FuQsiDockCmd1;
/**
 * FuQsiDockCmd2Cmd:
 */
typedef enum {
    /**
     * FU_QSI_DOCK_CMD2_CMD_DEVICE_STATUS:
     */
    FU_QSI_DOCK_CMD2_CMD_DEVICE_STATUS,
    /**
     * FU_QSI_DOCK_CMD2_CMD_SET_BOOT_MODE:
     */
    FU_QSI_DOCK_CMD2_CMD_SET_BOOT_MODE,
    /**
     * FU_QSI_DOCK_CMD2_CMD_SET_AP_MODE:
     */
    FU_QSI_DOCK_CMD2_CMD_SET_AP_MODE,
    /**
     * FU_QSI_DOCK_CMD2_CMD_ERASE_AP_PAGE:
     */
    FU_QSI_DOCK_CMD2_CMD_ERASE_AP_PAGE,
    /**
     * FU_QSI_DOCK_CMD2_CMD_CHECKSUM:
     */
    FU_QSI_DOCK_CMD2_CMD_CHECKSUM,
    /**
     * FU_QSI_DOCK_CMD2_CMD_DEVICE_VERSION:
     */
    FU_QSI_DOCK_CMD2_CMD_DEVICE_VERSION,
    /**
     * FU_QSI_DOCK_CMD2_CMD_DEVICE_PCB_VERSION:
     */
    FU_QSI_DOCK_CMD2_CMD_DEVICE_PCB_VERSION,
    /**
     * FU_QSI_DOCK_CMD2_CMD_DEVICE_SN:
     */
    FU_QSI_DOCK_CMD2_CMD_DEVICE_SN,
}  FuQsiDockCmd2Cmd;
#define FU_QSI_DOCK_CMD2_CMD_LAST 8
/**
 * FuQsiDockCmd2Spi:
 */
typedef enum {
    /**
     * FU_QSI_DOCK_CMD2_SPI_EXTERNAL_FLASH_INI:
     */
    FU_QSI_DOCK_CMD2_SPI_EXTERNAL_FLASH_INI,
    /**
     * FU_QSI_DOCK_CMD2_SPI_EXTERNAL_FLASH_ERASE:
     */
    FU_QSI_DOCK_CMD2_SPI_EXTERNAL_FLASH_ERASE,
    /**
     * FU_QSI_DOCK_CMD2_SPI_EXTERNAL_FLASH_CHECKSUM:
     */
    FU_QSI_DOCK_CMD2_SPI_EXTERNAL_FLASH_CHECKSUM,
}  FuQsiDockCmd2Spi;
#define FU_QSI_DOCK_CMD2_SPI_LAST 3
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuQsiDockIspVersionInMcu;

FuQsiDockIspVersionInMcu *fu_qsi_dock_isp_version_in_mcu_ref(FuQsiDockIspVersionInMcu *st) G_GNUC_NON_NULL(1);
void fu_qsi_dock_isp_version_in_mcu_unref(FuQsiDockIspVersionInMcu *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuQsiDockIspVersionInMcu, fu_qsi_dock_isp_version_in_mcu_unref)

#ifndef __GI_SCANNER__
#define FU_QSI_DOCK_ISP_VERSION_IN_MCU_OFFSET_DMC 0x0
#define FU_QSI_DOCK_ISP_VERSION_IN_MCU_OFFSET_PD 0x5
#define FU_QSI_DOCK_ISP_VERSION_IN_MCU_OFFSET_DP5X 0xA
#define FU_QSI_DOCK_ISP_VERSION_IN_MCU_OFFSET_DP6X 0xF
#define FU_QSI_DOCK_ISP_VERSION_IN_MCU_OFFSET_TBT4 0x14
#define FU_QSI_DOCK_ISP_VERSION_IN_MCU_OFFSET_USB3 0x19
#define FU_QSI_DOCK_ISP_VERSION_IN_MCU_OFFSET_USB2 0x1E
#define FU_QSI_DOCK_ISP_VERSION_IN_MCU_OFFSET_AUDIO 0x23
#define FU_QSI_DOCK_ISP_VERSION_IN_MCU_OFFSET_I225 0x28
#define FU_QSI_DOCK_ISP_VERSION_IN_MCU_OFFSET_MCU 0x2D
#define FU_QSI_DOCK_ISP_VERSION_IN_MCU_OFFSET_BCD_VERSION 0x2F
#endif

#ifndef __GI_SCANNER__
#define FU_QSI_DOCK_ISP_VERSION_IN_MCU_SIZE_DMC 0x5
#define FU_QSI_DOCK_ISP_VERSION_IN_MCU_N_ELEMENTS_DMC 5
#define FU_QSI_DOCK_ISP_VERSION_IN_MCU_SIZE_PD 0x5
#define FU_QSI_DOCK_ISP_VERSION_IN_MCU_N_ELEMENTS_PD 5
#define FU_QSI_DOCK_ISP_VERSION_IN_MCU_SIZE_DP5X 0x5
#define FU_QSI_DOCK_ISP_VERSION_IN_MCU_N_ELEMENTS_DP5X 5
#define FU_QSI_DOCK_ISP_VERSION_IN_MCU_SIZE_DP6X 0x5
#define FU_QSI_DOCK_ISP_VERSION_IN_MCU_N_ELEMENTS_DP6X 5
#define FU_QSI_DOCK_ISP_VERSION_IN_MCU_SIZE_TBT4 0x5
#define FU_QSI_DOCK_ISP_VERSION_IN_MCU_N_ELEMENTS_TBT4 5
#define FU_QSI_DOCK_ISP_VERSION_IN_MCU_SIZE_USB3 0x5
#define FU_QSI_DOCK_ISP_VERSION_IN_MCU_N_ELEMENTS_USB3 5
#define FU_QSI_DOCK_ISP_VERSION_IN_MCU_SIZE_USB2 0x5
#define FU_QSI_DOCK_ISP_VERSION_IN_MCU_N_ELEMENTS_USB2 5
#define FU_QSI_DOCK_ISP_VERSION_IN_MCU_SIZE_AUDIO 0x5
#define FU_QSI_DOCK_ISP_VERSION_IN_MCU_N_ELEMENTS_AUDIO 5
#define FU_QSI_DOCK_ISP_VERSION_IN_MCU_SIZE_I225 0x5
#define FU_QSI_DOCK_ISP_VERSION_IN_MCU_N_ELEMENTS_I225 5
#define FU_QSI_DOCK_ISP_VERSION_IN_MCU_SIZE_MCU 0x2
#define FU_QSI_DOCK_ISP_VERSION_IN_MCU_N_ELEMENTS_MCU 2
#define FU_QSI_DOCK_ISP_VERSION_IN_MCU_SIZE_BCD_VERSION 0x2
#define FU_QSI_DOCK_ISP_VERSION_IN_MCU_N_ELEMENTS_BCD_VERSION 2
#define FU_QSI_DOCK_ISP_VERSION_IN_MCU_SIZE 0x31
#endif

#ifndef __GI_SCANNER__
#endif
