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

#pragma once
#include <fu-input-stream.h>
/**
 * FuSynapticsMstFamily:
 */
typedef enum {
    /**
     * FU_SYNAPTICS_MST_FAMILY_UNKNOWN:
     */
    FU_SYNAPTICS_MST_FAMILY_UNKNOWN = 0xFF,
    /**
     * FU_SYNAPTICS_MST_FAMILY_TESLA:
     */
    FU_SYNAPTICS_MST_FAMILY_TESLA = 0,
    /**
     * FU_SYNAPTICS_MST_FAMILY_LEAF:
     */
    FU_SYNAPTICS_MST_FAMILY_LEAF = 1,
    /**
     * FU_SYNAPTICS_MST_FAMILY_PANAMERA:
     */
    FU_SYNAPTICS_MST_FAMILY_PANAMERA = 2,
    /**
     * FU_SYNAPTICS_MST_FAMILY_CAYENNE:
     */
    FU_SYNAPTICS_MST_FAMILY_CAYENNE = 3,
    /**
     * FU_SYNAPTICS_MST_FAMILY_SPYDER:
     */
    FU_SYNAPTICS_MST_FAMILY_SPYDER = 4,
    /**
     * FU_SYNAPTICS_MST_FAMILY_CARRERA:
     */
    FU_SYNAPTICS_MST_FAMILY_CARRERA = 5,
}  FuSynapticsMstFamily;
const gchar *fu_synaptics_mst_family_to_string(FuSynapticsMstFamily val) G_GNUC_CONST;
/**
 * FuSynapticsMstUpdcRc:
 */
typedef enum {
    /**
     * FU_SYNAPTICS_MST_UPDC_RC_SUCCESS:
     */
    FU_SYNAPTICS_MST_UPDC_RC_SUCCESS,
    /**
     * FU_SYNAPTICS_MST_UPDC_RC_INVALID:
     */
    FU_SYNAPTICS_MST_UPDC_RC_INVALID,
    /**
     * FU_SYNAPTICS_MST_UPDC_RC_UNSUPPORTED:
     */
    FU_SYNAPTICS_MST_UPDC_RC_UNSUPPORTED,
    /**
     * FU_SYNAPTICS_MST_UPDC_RC_FAILED:
     */
    FU_SYNAPTICS_MST_UPDC_RC_FAILED,
    /**
     * FU_SYNAPTICS_MST_UPDC_RC_DISABLED:
     */
    FU_SYNAPTICS_MST_UPDC_RC_DISABLED,
    /**
     * FU_SYNAPTICS_MST_UPDC_RC_CONFIGURE_SIGN_FAILED:
     */
    FU_SYNAPTICS_MST_UPDC_RC_CONFIGURE_SIGN_FAILED,
    /**
     * FU_SYNAPTICS_MST_UPDC_RC_FIRMWARE_SIGN_FAILED:
     */
    FU_SYNAPTICS_MST_UPDC_RC_FIRMWARE_SIGN_FAILED,
    /**
     * FU_SYNAPTICS_MST_UPDC_RC_ROLLBACK_FAILED:
     */
    FU_SYNAPTICS_MST_UPDC_RC_ROLLBACK_FAILED,
}  FuSynapticsMstUpdcRc;
#define FU_SYNAPTICS_MST_UPDC_RC_LAST 8
const gchar *fu_synaptics_mst_updc_rc_to_string(FuSynapticsMstUpdcRc val) G_GNUC_CONST;
/**
 * FuSynapticsMstUpdcCmd:
 */
typedef enum {
    /**
     * FU_SYNAPTICS_MST_UPDC_CMD_ENABLE_RC:
     */
    FU_SYNAPTICS_MST_UPDC_CMD_ENABLE_RC = 0x01,
    /**
     * FU_SYNAPTICS_MST_UPDC_CMD_DISABLE_RC:
     */
    FU_SYNAPTICS_MST_UPDC_CMD_DISABLE_RC = 0x02,
    /**
     * FU_SYNAPTICS_MST_UPDC_CMD_GET_ID:
     */
    FU_SYNAPTICS_MST_UPDC_CMD_GET_ID = 0x03,
    /**
     * FU_SYNAPTICS_MST_UPDC_CMD_GET_VERSION:
     */
    FU_SYNAPTICS_MST_UPDC_CMD_GET_VERSION = 0x04,
    /**
     * FU_SYNAPTICS_MST_UPDC_CMD_FLASH_MAPPING:
     */
    FU_SYNAPTICS_MST_UPDC_CMD_FLASH_MAPPING = 0x07,
    /**
     * FU_SYNAPTICS_MST_UPDC_CMD_ENABLE_FLASH_CHIP_ERASE:
     */
    FU_SYNAPTICS_MST_UPDC_CMD_ENABLE_FLASH_CHIP_ERASE = 0x08,
    /**
     * FU_SYNAPTICS_MST_UPDC_CMD_CAL_EEPROM_CHECKSUM:
     */
    FU_SYNAPTICS_MST_UPDC_CMD_CAL_EEPROM_CHECKSUM = 0x11,
    /**
     * FU_SYNAPTICS_MST_UPDC_CMD_FLASH_ERASE:
     */
    FU_SYNAPTICS_MST_UPDC_CMD_FLASH_ERASE = 0x14,
    /**
     * FU_SYNAPTICS_MST_UPDC_CMD_CAL_EEPROM_CHECK_CRC8:
     */
    FU_SYNAPTICS_MST_UPDC_CMD_CAL_EEPROM_CHECK_CRC8 = 0x16,
    /**
     * FU_SYNAPTICS_MST_UPDC_CMD_CAL_EEPROM_CHECK_CRC16:
     */
    FU_SYNAPTICS_MST_UPDC_CMD_CAL_EEPROM_CHECK_CRC16 = 0x17,
    /**
     * FU_SYNAPTICS_MST_UPDC_CMD_ACTIVATE_FIRMWARE:
     */
    FU_SYNAPTICS_MST_UPDC_CMD_ACTIVATE_FIRMWARE = 0x18,
    /**
     * FU_SYNAPTICS_MST_UPDC_CMD_WRITE_TO_EEPROM:
     */
    FU_SYNAPTICS_MST_UPDC_CMD_WRITE_TO_EEPROM = 0x20,
    /**
     * FU_SYNAPTICS_MST_UPDC_CMD_WRITE_TO_MEMORY:
     */
    FU_SYNAPTICS_MST_UPDC_CMD_WRITE_TO_MEMORY = 0x21,
    /**
     * FU_SYNAPTICS_MST_UPDC_CMD_WRITE_TO_TX_DPCD:
     *
     * TX0
     */
    FU_SYNAPTICS_MST_UPDC_CMD_WRITE_TO_TX_DPCD = 0x22,
    /**
     * FU_SYNAPTICS_MST_UPDC_CMD_WRITE_TO_TX_DPCD_TX1:
     */
    FU_SYNAPTICS_MST_UPDC_CMD_WRITE_TO_TX_DPCD_TX1 = 0x23,
    /**
     * FU_SYNAPTICS_MST_UPDC_CMD_WRITE_TO_TX_DPCD_TX2:
     */
    FU_SYNAPTICS_MST_UPDC_CMD_WRITE_TO_TX_DPCD_TX2 = 0x24,
    /**
     * FU_SYNAPTICS_MST_UPDC_CMD_WRITE_TO_TX_DPCD_TX3:
     */
    FU_SYNAPTICS_MST_UPDC_CMD_WRITE_TO_TX_DPCD_TX3 = 0x25,
    /**
     * FU_SYNAPTICS_MST_UPDC_CMD_READ_FROM_EEPROM:
     */
    FU_SYNAPTICS_MST_UPDC_CMD_READ_FROM_EEPROM = 0x30,
    /**
     * FU_SYNAPTICS_MST_UPDC_CMD_READ_FROM_MEMORY:
     */
    FU_SYNAPTICS_MST_UPDC_CMD_READ_FROM_MEMORY = 0x31,
    /**
     * FU_SYNAPTICS_MST_UPDC_CMD_READ_FROM_TX_DPCD:
     *
     * TX0
     */
    FU_SYNAPTICS_MST_UPDC_CMD_READ_FROM_TX_DPCD = 0x32,
    /**
     * FU_SYNAPTICS_MST_UPDC_CMD_READ_FROM_TX_DPCD_TX1:
     */
    FU_SYNAPTICS_MST_UPDC_CMD_READ_FROM_TX_DPCD_TX1 = 0x33,
    /**
     * FU_SYNAPTICS_MST_UPDC_CMD_READ_FROM_TX_DPCD_TX2:
     */
    FU_SYNAPTICS_MST_UPDC_CMD_READ_FROM_TX_DPCD_TX2 = 0x34,
    /**
     * FU_SYNAPTICS_MST_UPDC_CMD_READ_FROM_TX_DPCD_TX3:
     */
    FU_SYNAPTICS_MST_UPDC_CMD_READ_FROM_TX_DPCD_TX3 = 0x35,
}  FuSynapticsMstUpdcCmd;
const gchar *fu_synaptics_mst_updc_cmd_to_string(FuSynapticsMstUpdcCmd val) G_GNUC_CONST;
/**
 * FuSynapticsMstRegRc:
 */
typedef enum {
    /**
     * FU_SYNAPTICS_MST_REG_RC_CAP:
     */
    FU_SYNAPTICS_MST_REG_RC_CAP = 0x4B0,
    /**
     * FU_SYNAPTICS_MST_REG_RC_STATE:
     */
    FU_SYNAPTICS_MST_REG_RC_STATE = 0x4B1,
    /**
     * FU_SYNAPTICS_MST_REG_RC_CMD:
     */
    FU_SYNAPTICS_MST_REG_RC_CMD = 0x4B2,
    /**
     * FU_SYNAPTICS_MST_REG_RC_RESULT:
     */
    FU_SYNAPTICS_MST_REG_RC_RESULT = 0x4B3,
    /**
     * FU_SYNAPTICS_MST_REG_RC_LEN:
     */
    FU_SYNAPTICS_MST_REG_RC_LEN = 0x4B8,
    /**
     * FU_SYNAPTICS_MST_REG_RC_OFFSET:
     */
    FU_SYNAPTICS_MST_REG_RC_OFFSET = 0x4BC,
    /**
     * FU_SYNAPTICS_MST_REG_RC_DATA:
     */
    FU_SYNAPTICS_MST_REG_RC_DATA = 0x4C0,
}  FuSynapticsMstRegRc;
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructSynapticsFirmwareConfig;

FuStructSynapticsFirmwareConfig *fu_struct_synaptics_firmware_config_ref(FuStructSynapticsFirmwareConfig *st) G_GNUC_NON_NULL(1);
void fu_struct_synaptics_firmware_config_unref(FuStructSynapticsFirmwareConfig *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructSynapticsFirmwareConfig, fu_struct_synaptics_firmware_config_unref)
FuStructSynapticsFirmwareConfig *fu_struct_synaptics_firmware_config_parse_stream(GInputStream *stream, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_synaptics_firmware_config_get_version(const FuStructSynapticsFirmwareConfig *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_synaptics_firmware_config_get_magic1(const FuStructSynapticsFirmwareConfig *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_synaptics_firmware_config_get_magic2(const FuStructSynapticsFirmwareConfig *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_SYNAPTICS_FIRMWARE_CONFIG_OFFSET_VERSION 0x0
#define FU_STRUCT_SYNAPTICS_FIRMWARE_CONFIG_OFFSET_MAGIC1 0x2
#define FU_STRUCT_SYNAPTICS_FIRMWARE_CONFIG_OFFSET_MAGIC2 0x3
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_SYNAPTICS_FIRMWARE_CONFIG_SIZE 0x4
#endif

#ifndef __GI_SCANNER__
#endif
