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

#pragma once
#include <fu-input-stream.h>
/**
 * FuQcGaiaV3Features:
 */
typedef enum {
    /**
     * FU_QC_GAIA_V3_FEATURES_CORE:
     */
    FU_QC_GAIA_V3_FEATURES_CORE = 0x00,
    /**
     * FU_QC_GAIA_V3_FEATURES_DFU:
     */
    FU_QC_GAIA_V3_FEATURES_DFU = 0x06,
}  FuQcGaiaV3Features;
/**
 * FuQcGaiaV3Cmd:
 *
 * Commands: 80-CH482-1, 80-CF422-1, 80-CF378-1
 */
typedef enum {
    /**
     * FU_QC_GAIA_V3_CMD_GET_API_REQ:
     */
    FU_QC_GAIA_V3_CMD_GET_API_REQ = 0x0000,
    /**
     * FU_QC_GAIA_V3_CMD_GET_API_RESP:
     */
    FU_QC_GAIA_V3_CMD_GET_API_RESP = 0x0100,
    /**
     * FU_QC_GAIA_V3_CMD_GET_SUPPORTED_FEATURES_REQ:
     */
    FU_QC_GAIA_V3_CMD_GET_SUPPORTED_FEATURES_REQ = 0x0001,
    /**
     * FU_QC_GAIA_V3_CMD_GET_SUPPORTED_FEATURES_RESP:
     */
    FU_QC_GAIA_V3_CMD_GET_SUPPORTED_FEATURES_RESP = 0x0101,
    /**
     * FU_QC_GAIA_V3_CMD_GET_SUPPORTED_FEATURES_NEXT_REQ:
     */
    FU_QC_GAIA_V3_CMD_GET_SUPPORTED_FEATURES_NEXT_REQ = 0x0002,
    /**
     * FU_QC_GAIA_V3_CMD_GET_SUPPORTED_FEATURES_NEXT_RESP:
     */
    FU_QC_GAIA_V3_CMD_GET_SUPPORTED_FEATURES_NEXT_RESP = 0x0102,
    /**
     * FU_QC_GAIA_V3_CMD_GET_SERIAL_REQ:
     */
    FU_QC_GAIA_V3_CMD_GET_SERIAL_REQ = 0x0003,
    /**
     * FU_QC_GAIA_V3_CMD_GET_SERIAL_RESP:
     */
    FU_QC_GAIA_V3_CMD_GET_SERIAL_RESP = 0x0103,
    /**
     * FU_QC_GAIA_V3_CMD_GET_VARIANT_REQ:
     */
    FU_QC_GAIA_V3_CMD_GET_VARIANT_REQ = 0x0004,
    /**
     * FU_QC_GAIA_V3_CMD_GET_VARIANT_RESP:
     */
    FU_QC_GAIA_V3_CMD_GET_VARIANT_RESP = 0x0104,
    /**
     * FU_QC_GAIA_V3_CMD_REGISTER_NOTIFICATION_CMD:
     */
    FU_QC_GAIA_V3_CMD_REGISTER_NOTIFICATION_CMD = 0x0007,
    /**
     * FU_QC_GAIA_V3_CMD_REGISTER_NOTIFICATION_ACK:
     */
    FU_QC_GAIA_V3_CMD_REGISTER_NOTIFICATION_ACK = 0x0107,
    /**
     * FU_QC_GAIA_V3_CMD_GET_TRANSPORT_INFO_REQ:
     */
    FU_QC_GAIA_V3_CMD_GET_TRANSPORT_INFO_REQ = 0x000c,
    /**
     * FU_QC_GAIA_V3_CMD_GET_TRANSPORT_INFO_RESP:
     */
    FU_QC_GAIA_V3_CMD_GET_TRANSPORT_INFO_RESP = 0x010c,
    /**
     * FU_QC_GAIA_V3_CMD_SET_TRANSPORT_INFO_REQ:
     */
    FU_QC_GAIA_V3_CMD_SET_TRANSPORT_INFO_REQ = 0x000d,
    /**
     * FU_QC_GAIA_V3_CMD_SET_TRANSPORT_INFO_RESP:
     */
    FU_QC_GAIA_V3_CMD_SET_TRANSPORT_INFO_RESP = 0x010d,
    /**
     * FU_QC_GAIA_V3_CMD_GET_SYSTEM_INFO_REQ:
     */
    FU_QC_GAIA_V3_CMD_GET_SYSTEM_INFO_REQ = 0x0011,
    /**
     * FU_QC_GAIA_V3_CMD_GET_SYSTEM_INFO_RESP:
     */
    FU_QC_GAIA_V3_CMD_GET_SYSTEM_INFO_RESP = 0x0111,
    /**
     * FU_QC_GAIA_V3_CMD_UPGRADE_CONNECT_CMD:
     */
    FU_QC_GAIA_V3_CMD_UPGRADE_CONNECT_CMD = 0x0c00,
    /**
     * FU_QC_GAIA_V3_CMD_UPGRADE_CONNECT_ACK:
     */
    FU_QC_GAIA_V3_CMD_UPGRADE_CONNECT_ACK = 0x0d00,
    /**
     * FU_QC_GAIA_V3_CMD_UPGRADE_DISCONNECT_CMD:
     */
    FU_QC_GAIA_V3_CMD_UPGRADE_DISCONNECT_CMD = 0x0c01,
    /**
     * FU_QC_GAIA_V3_CMD_UPGRADE_DISCONNECT_ACK:
     */
    FU_QC_GAIA_V3_CMD_UPGRADE_DISCONNECT_ACK = 0x0d01,
    /**
     * FU_QC_GAIA_V3_CMD_UPGRADE_CONTROL_CMD:
     */
    FU_QC_GAIA_V3_CMD_UPGRADE_CONTROL_CMD = 0x0c02,
    /**
     * FU_QC_GAIA_V3_CMD_UPGRADE_CONTROL_ACK:
     */
    FU_QC_GAIA_V3_CMD_UPGRADE_CONTROL_ACK = 0x0d02,
}  FuQcGaiaV3Cmd;
/**
 * FuQcGaiaCmdStatus:
 */
typedef enum {
    /**
     * FU_QC_GAIA_CMD_STATUS_SUCCESS:
     */
    FU_QC_GAIA_CMD_STATUS_SUCCESS = 0x00,
    /**
     * FU_QC_GAIA_CMD_STATUS_NOT_SUPPORTED:
     */
    FU_QC_GAIA_CMD_STATUS_NOT_SUPPORTED = 0x01,
    /**
     * FU_QC_GAIA_CMD_STATUS_INSUFFICIENT_RESOURCES:
     */
    FU_QC_GAIA_CMD_STATUS_INSUFFICIENT_RESOURCES = 0x03,
    /**
     * FU_QC_GAIA_CMD_STATUS_INVALID_PARAMETER:
     */
    FU_QC_GAIA_CMD_STATUS_INVALID_PARAMETER = 0x05,
    /**
     * FU_QC_GAIA_CMD_STATUS_INCORRECT_STATE:
     */
    FU_QC_GAIA_CMD_STATUS_INCORRECT_STATE = 0x06,
    /**
     * FU_QC_GAIA_CMD_STATUS_IN_PROGERSS:
     */
    FU_QC_GAIA_CMD_STATUS_IN_PROGERSS = 0x07,
}  FuQcGaiaCmdStatus;
/**
 * FuQcMore:
 */
typedef enum {
    /**
     * FU_QC_MORE_MORE:
     */
    FU_QC_MORE_MORE = 1,
    /**
     * FU_QC_MORE_LAST:
     */
    FU_QC_MORE_LAST = 0,
}  FuQcMore;
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructQcGaiaV3ApiReq;

FuStructQcGaiaV3ApiReq *fu_struct_qc_gaia_v3_api_req_ref(FuStructQcGaiaV3ApiReq *st) G_GNUC_NON_NULL(1);
void fu_struct_qc_gaia_v3_api_req_unref(FuStructQcGaiaV3ApiReq *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructQcGaiaV3ApiReq, fu_struct_qc_gaia_v3_api_req_unref)
FuStructQcGaiaV3ApiReq *fu_struct_qc_gaia_v3_api_req_new(void) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_qc_gaia_v3_api_req_set_vendor_id(FuStructQcGaiaV3ApiReq *st, guint16 value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_API_REQ_OFFSET_VENDORID 0x0
#define FU_STRUCT_QC_GAIA_V3_API_REQ_OFFSET_COMMAND 0x2
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_API_REQ_SIZE 0x4
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_API_REQ_DEFAULT_COMMAND FU_QC_GAIA_V3_CMD_GET_API_REQ
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructQcGaiaV3Api;

FuStructQcGaiaV3Api *fu_struct_qc_gaia_v3_api_ref(FuStructQcGaiaV3Api *st) G_GNUC_NON_NULL(1);
void fu_struct_qc_gaia_v3_api_unref(FuStructQcGaiaV3Api *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructQcGaiaV3Api, fu_struct_qc_gaia_v3_api_unref)
FuStructQcGaiaV3Api *fu_struct_qc_gaia_v3_api_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_qc_gaia_v3_api_get_vendor_id(const FuStructQcGaiaV3Api *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_qc_gaia_v3_api_get_major(const FuStructQcGaiaV3Api *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_qc_gaia_v3_api_get_minor(const FuStructQcGaiaV3Api *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_API_OFFSET_VENDORID 0x0
#define FU_STRUCT_QC_GAIA_V3_API_OFFSET_COMMAND 0x2
#define FU_STRUCT_QC_GAIA_V3_API_OFFSET_MAJOR 0x4
#define FU_STRUCT_QC_GAIA_V3_API_OFFSET_MINOR 0x5
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_API_SIZE 0x6
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_API_DEFAULT_COMMAND FU_QC_GAIA_V3_CMD_GET_API_RESP
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructQcGaiaV3SupportedFeaturesReq;

FuStructQcGaiaV3SupportedFeaturesReq *fu_struct_qc_gaia_v3_supported_features_req_ref(FuStructQcGaiaV3SupportedFeaturesReq *st) G_GNUC_NON_NULL(1);
void fu_struct_qc_gaia_v3_supported_features_req_unref(FuStructQcGaiaV3SupportedFeaturesReq *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructQcGaiaV3SupportedFeaturesReq, fu_struct_qc_gaia_v3_supported_features_req_unref)
FuStructQcGaiaV3SupportedFeaturesReq *fu_struct_qc_gaia_v3_supported_features_req_new(void) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_qc_gaia_v3_supported_features_req_set_vendor_id(FuStructQcGaiaV3SupportedFeaturesReq *st, guint16 value) G_GNUC_NON_NULL(1);
void fu_struct_qc_gaia_v3_supported_features_req_set_command(FuStructQcGaiaV3SupportedFeaturesReq *st, FuQcGaiaV3Cmd value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_SUPPORTED_FEATURES_REQ_OFFSET_VENDORID 0x0
#define FU_STRUCT_QC_GAIA_V3_SUPPORTED_FEATURES_REQ_OFFSET_COMMAND 0x2
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_SUPPORTED_FEATURES_REQ_SIZE 0x4
#endif

#ifndef __GI_SCANNER__
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructQcGaiaV3SupportedFeatures;

FuStructQcGaiaV3SupportedFeatures *fu_struct_qc_gaia_v3_supported_features_ref(FuStructQcGaiaV3SupportedFeatures *st) G_GNUC_NON_NULL(1);
void fu_struct_qc_gaia_v3_supported_features_unref(FuStructQcGaiaV3SupportedFeatures *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructQcGaiaV3SupportedFeatures, fu_struct_qc_gaia_v3_supported_features_unref)
FuStructQcGaiaV3SupportedFeatures *fu_struct_qc_gaia_v3_supported_features_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_qc_gaia_v3_supported_features_get_vendor_id(const FuStructQcGaiaV3SupportedFeatures *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuQcGaiaV3Cmd fu_struct_qc_gaia_v3_supported_features_get_command(const FuStructQcGaiaV3SupportedFeatures *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuQcMore fu_struct_qc_gaia_v3_supported_features_get_more_features(const FuStructQcGaiaV3SupportedFeatures *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_SUPPORTED_FEATURES_OFFSET_VENDORID 0x0
#define FU_STRUCT_QC_GAIA_V3_SUPPORTED_FEATURES_OFFSET_COMMAND 0x2
#define FU_STRUCT_QC_GAIA_V3_SUPPORTED_FEATURES_OFFSET_MOREFEATURES 0x4
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_SUPPORTED_FEATURES_SIZE 0x5
#endif

#ifndef __GI_SCANNER__
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructQcGaiaV3SerialReq;

FuStructQcGaiaV3SerialReq *fu_struct_qc_gaia_v3_serial_req_ref(FuStructQcGaiaV3SerialReq *st) G_GNUC_NON_NULL(1);
void fu_struct_qc_gaia_v3_serial_req_unref(FuStructQcGaiaV3SerialReq *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructQcGaiaV3SerialReq, fu_struct_qc_gaia_v3_serial_req_unref)
FuStructQcGaiaV3SerialReq *fu_struct_qc_gaia_v3_serial_req_new(void) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_qc_gaia_v3_serial_req_set_vendor_id(FuStructQcGaiaV3SerialReq *st, guint16 value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_SERIAL_REQ_OFFSET_VENDORID 0x0
#define FU_STRUCT_QC_GAIA_V3_SERIAL_REQ_OFFSET_COMMAND 0x2
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_SERIAL_REQ_SIZE 0x4
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_SERIAL_REQ_DEFAULT_COMMAND FU_QC_GAIA_V3_CMD_GET_SERIAL_REQ
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructQcGaiaV3Serial;

FuStructQcGaiaV3Serial *fu_struct_qc_gaia_v3_serial_ref(FuStructQcGaiaV3Serial *st) G_GNUC_NON_NULL(1);
void fu_struct_qc_gaia_v3_serial_unref(FuStructQcGaiaV3Serial *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructQcGaiaV3Serial, fu_struct_qc_gaia_v3_serial_unref)
FuStructQcGaiaV3Serial *fu_struct_qc_gaia_v3_serial_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_qc_gaia_v3_serial_get_vendor_id(const FuStructQcGaiaV3Serial *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_SERIAL_OFFSET_VENDORID 0x0
#define FU_STRUCT_QC_GAIA_V3_SERIAL_OFFSET_COMMAND 0x2
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_SERIAL_SIZE 0x4
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_SERIAL_DEFAULT_COMMAND FU_QC_GAIA_V3_CMD_GET_SERIAL_RESP
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructQcGaiaV3VariantReq;

FuStructQcGaiaV3VariantReq *fu_struct_qc_gaia_v3_variant_req_ref(FuStructQcGaiaV3VariantReq *st) G_GNUC_NON_NULL(1);
void fu_struct_qc_gaia_v3_variant_req_unref(FuStructQcGaiaV3VariantReq *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructQcGaiaV3VariantReq, fu_struct_qc_gaia_v3_variant_req_unref)
FuStructQcGaiaV3VariantReq *fu_struct_qc_gaia_v3_variant_req_new(void) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_qc_gaia_v3_variant_req_set_vendor_id(FuStructQcGaiaV3VariantReq *st, guint16 value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_VARIANT_REQ_OFFSET_VENDORID 0x0
#define FU_STRUCT_QC_GAIA_V3_VARIANT_REQ_OFFSET_COMMAND 0x2
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_VARIANT_REQ_SIZE 0x4
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_VARIANT_REQ_DEFAULT_COMMAND FU_QC_GAIA_V3_CMD_GET_VARIANT_REQ
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructQcGaiaV3Variant;

FuStructQcGaiaV3Variant *fu_struct_qc_gaia_v3_variant_ref(FuStructQcGaiaV3Variant *st) G_GNUC_NON_NULL(1);
void fu_struct_qc_gaia_v3_variant_unref(FuStructQcGaiaV3Variant *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructQcGaiaV3Variant, fu_struct_qc_gaia_v3_variant_unref)
FuStructQcGaiaV3Variant *fu_struct_qc_gaia_v3_variant_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_qc_gaia_v3_variant_get_vendor_id(const FuStructQcGaiaV3Variant *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_VARIANT_OFFSET_VENDORID 0x0
#define FU_STRUCT_QC_GAIA_V3_VARIANT_OFFSET_COMMAND 0x2
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_VARIANT_SIZE 0x4
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_VARIANT_DEFAULT_COMMAND FU_QC_GAIA_V3_CMD_GET_VARIANT_RESP
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructQcGaiaV3GetTransportInfoReq;

FuStructQcGaiaV3GetTransportInfoReq *fu_struct_qc_gaia_v3_get_transport_info_req_ref(FuStructQcGaiaV3GetTransportInfoReq *st) G_GNUC_NON_NULL(1);
void fu_struct_qc_gaia_v3_get_transport_info_req_unref(FuStructQcGaiaV3GetTransportInfoReq *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructQcGaiaV3GetTransportInfoReq, fu_struct_qc_gaia_v3_get_transport_info_req_unref)
FuStructQcGaiaV3GetTransportInfoReq *fu_struct_qc_gaia_v3_get_transport_info_req_new(void) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_qc_gaia_v3_get_transport_info_req_set_vendor_id(FuStructQcGaiaV3GetTransportInfoReq *st, guint16 value) G_GNUC_NON_NULL(1);
void fu_struct_qc_gaia_v3_get_transport_info_req_set_key(FuStructQcGaiaV3GetTransportInfoReq *st, guint8 value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_GET_TRANSPORT_INFO_REQ_OFFSET_VENDORID 0x0
#define FU_STRUCT_QC_GAIA_V3_GET_TRANSPORT_INFO_REQ_OFFSET_COMMAND 0x2
#define FU_STRUCT_QC_GAIA_V3_GET_TRANSPORT_INFO_REQ_OFFSET_KEY 0x4
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_GET_TRANSPORT_INFO_REQ_SIZE 0x5
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_GET_TRANSPORT_INFO_REQ_DEFAULT_COMMAND FU_QC_GAIA_V3_CMD_GET_TRANSPORT_INFO_REQ
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructQcGaiaV3GetTransportInfo;

FuStructQcGaiaV3GetTransportInfo *fu_struct_qc_gaia_v3_get_transport_info_ref(FuStructQcGaiaV3GetTransportInfo *st) G_GNUC_NON_NULL(1);
void fu_struct_qc_gaia_v3_get_transport_info_unref(FuStructQcGaiaV3GetTransportInfo *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructQcGaiaV3GetTransportInfo, fu_struct_qc_gaia_v3_get_transport_info_unref)
FuStructQcGaiaV3GetTransportInfo *fu_struct_qc_gaia_v3_get_transport_info_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_qc_gaia_v3_get_transport_info_get_vendor_id(const FuStructQcGaiaV3GetTransportInfo *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_qc_gaia_v3_get_transport_info_get_key(const FuStructQcGaiaV3GetTransportInfo *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_qc_gaia_v3_get_transport_info_get_value(const FuStructQcGaiaV3GetTransportInfo *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_GET_TRANSPORT_INFO_OFFSET_VENDORID 0x0
#define FU_STRUCT_QC_GAIA_V3_GET_TRANSPORT_INFO_OFFSET_COMMAND 0x2
#define FU_STRUCT_QC_GAIA_V3_GET_TRANSPORT_INFO_OFFSET_KEY 0x4
#define FU_STRUCT_QC_GAIA_V3_GET_TRANSPORT_INFO_OFFSET_VALUE 0x5
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_GET_TRANSPORT_INFO_SIZE 0x9
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_GET_TRANSPORT_INFO_DEFAULT_COMMAND FU_QC_GAIA_V3_CMD_GET_TRANSPORT_INFO_RESP
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructQcGaiaV3SetTransportInfoReq;

FuStructQcGaiaV3SetTransportInfoReq *fu_struct_qc_gaia_v3_set_transport_info_req_ref(FuStructQcGaiaV3SetTransportInfoReq *st) G_GNUC_NON_NULL(1);
void fu_struct_qc_gaia_v3_set_transport_info_req_unref(FuStructQcGaiaV3SetTransportInfoReq *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructQcGaiaV3SetTransportInfoReq, fu_struct_qc_gaia_v3_set_transport_info_req_unref)
FuStructQcGaiaV3SetTransportInfoReq *fu_struct_qc_gaia_v3_set_transport_info_req_new(void) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_qc_gaia_v3_set_transport_info_req_set_vendor_id(FuStructQcGaiaV3SetTransportInfoReq *st, guint16 value) G_GNUC_NON_NULL(1);
void fu_struct_qc_gaia_v3_set_transport_info_req_set_key(FuStructQcGaiaV3SetTransportInfoReq *st, guint8 value) G_GNUC_NON_NULL(1);
void fu_struct_qc_gaia_v3_set_transport_info_req_set_value(FuStructQcGaiaV3SetTransportInfoReq *st, guint32 value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_SET_TRANSPORT_INFO_REQ_OFFSET_VENDORID 0x0
#define FU_STRUCT_QC_GAIA_V3_SET_TRANSPORT_INFO_REQ_OFFSET_COMMAND 0x2
#define FU_STRUCT_QC_GAIA_V3_SET_TRANSPORT_INFO_REQ_OFFSET_KEY 0x4
#define FU_STRUCT_QC_GAIA_V3_SET_TRANSPORT_INFO_REQ_OFFSET_VALUE 0x5
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_SET_TRANSPORT_INFO_REQ_SIZE 0x9
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_SET_TRANSPORT_INFO_REQ_DEFAULT_COMMAND FU_QC_GAIA_V3_CMD_SET_TRANSPORT_INFO_REQ
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructQcGaiaV3SetTransportInfo;

FuStructQcGaiaV3SetTransportInfo *fu_struct_qc_gaia_v3_set_transport_info_ref(FuStructQcGaiaV3SetTransportInfo *st) G_GNUC_NON_NULL(1);
void fu_struct_qc_gaia_v3_set_transport_info_unref(FuStructQcGaiaV3SetTransportInfo *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructQcGaiaV3SetTransportInfo, fu_struct_qc_gaia_v3_set_transport_info_unref)
FuStructQcGaiaV3SetTransportInfo *fu_struct_qc_gaia_v3_set_transport_info_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_qc_gaia_v3_set_transport_info_get_vendor_id(const FuStructQcGaiaV3SetTransportInfo *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_qc_gaia_v3_set_transport_info_get_key(const FuStructQcGaiaV3SetTransportInfo *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_qc_gaia_v3_set_transport_info_get_value(const FuStructQcGaiaV3SetTransportInfo *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_SET_TRANSPORT_INFO_OFFSET_VENDORID 0x0
#define FU_STRUCT_QC_GAIA_V3_SET_TRANSPORT_INFO_OFFSET_COMMAND 0x2
#define FU_STRUCT_QC_GAIA_V3_SET_TRANSPORT_INFO_OFFSET_KEY 0x4
#define FU_STRUCT_QC_GAIA_V3_SET_TRANSPORT_INFO_OFFSET_VALUE 0x5
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_SET_TRANSPORT_INFO_SIZE 0x9
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_SET_TRANSPORT_INFO_DEFAULT_COMMAND FU_QC_GAIA_V3_CMD_SET_TRANSPORT_INFO_RESP
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructQcGaiaV3UpgradeConnectCmd;

FuStructQcGaiaV3UpgradeConnectCmd *fu_struct_qc_gaia_v3_upgrade_connect_cmd_ref(FuStructQcGaiaV3UpgradeConnectCmd *st) G_GNUC_NON_NULL(1);
void fu_struct_qc_gaia_v3_upgrade_connect_cmd_unref(FuStructQcGaiaV3UpgradeConnectCmd *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructQcGaiaV3UpgradeConnectCmd, fu_struct_qc_gaia_v3_upgrade_connect_cmd_unref)
FuStructQcGaiaV3UpgradeConnectCmd *fu_struct_qc_gaia_v3_upgrade_connect_cmd_new(void) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_qc_gaia_v3_upgrade_connect_cmd_set_vendor_id(FuStructQcGaiaV3UpgradeConnectCmd *st, guint16 value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_UPGRADE_CONNECT_CMD_OFFSET_VENDORID 0x0
#define FU_STRUCT_QC_GAIA_V3_UPGRADE_CONNECT_CMD_OFFSET_COMMAND 0x2
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_UPGRADE_CONNECT_CMD_SIZE 0x4
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_UPGRADE_CONNECT_CMD_DEFAULT_COMMAND FU_QC_GAIA_V3_CMD_UPGRADE_CONNECT_CMD
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructQcGaiaV3UpgradeConnectAck;

FuStructQcGaiaV3UpgradeConnectAck *fu_struct_qc_gaia_v3_upgrade_connect_ack_ref(FuStructQcGaiaV3UpgradeConnectAck *st) G_GNUC_NON_NULL(1);
void fu_struct_qc_gaia_v3_upgrade_connect_ack_unref(FuStructQcGaiaV3UpgradeConnectAck *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructQcGaiaV3UpgradeConnectAck, fu_struct_qc_gaia_v3_upgrade_connect_ack_unref)
FuStructQcGaiaV3UpgradeConnectAck *fu_struct_qc_gaia_v3_upgrade_connect_ack_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_qc_gaia_v3_upgrade_connect_ack_get_vendor_id(const FuStructQcGaiaV3UpgradeConnectAck *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_UPGRADE_CONNECT_ACK_OFFSET_VENDORID 0x0
#define FU_STRUCT_QC_GAIA_V3_UPGRADE_CONNECT_ACK_OFFSET_COMMAND 0x2
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_UPGRADE_CONNECT_ACK_SIZE 0x4
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_UPGRADE_CONNECT_ACK_DEFAULT_COMMAND FU_QC_GAIA_V3_CMD_UPGRADE_CONNECT_ACK
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructQcGaiaV3UpgradeDisconnectCmd;

FuStructQcGaiaV3UpgradeDisconnectCmd *fu_struct_qc_gaia_v3_upgrade_disconnect_cmd_ref(FuStructQcGaiaV3UpgradeDisconnectCmd *st) G_GNUC_NON_NULL(1);
void fu_struct_qc_gaia_v3_upgrade_disconnect_cmd_unref(FuStructQcGaiaV3UpgradeDisconnectCmd *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructQcGaiaV3UpgradeDisconnectCmd, fu_struct_qc_gaia_v3_upgrade_disconnect_cmd_unref)
FuStructQcGaiaV3UpgradeDisconnectCmd *fu_struct_qc_gaia_v3_upgrade_disconnect_cmd_new(void) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_qc_gaia_v3_upgrade_disconnect_cmd_set_vendor_id(FuStructQcGaiaV3UpgradeDisconnectCmd *st, guint16 value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_UPGRADE_DISCONNECT_CMD_OFFSET_VENDORID 0x0
#define FU_STRUCT_QC_GAIA_V3_UPGRADE_DISCONNECT_CMD_OFFSET_COMMAND 0x2
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_UPGRADE_DISCONNECT_CMD_SIZE 0x4
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_UPGRADE_DISCONNECT_CMD_DEFAULT_COMMAND FU_QC_GAIA_V3_CMD_UPGRADE_DISCONNECT_CMD
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructQcGaiaV3UpgradeDisconnectAck;

FuStructQcGaiaV3UpgradeDisconnectAck *fu_struct_qc_gaia_v3_upgrade_disconnect_ack_ref(FuStructQcGaiaV3UpgradeDisconnectAck *st) G_GNUC_NON_NULL(1);
void fu_struct_qc_gaia_v3_upgrade_disconnect_ack_unref(FuStructQcGaiaV3UpgradeDisconnectAck *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructQcGaiaV3UpgradeDisconnectAck, fu_struct_qc_gaia_v3_upgrade_disconnect_ack_unref)
FuStructQcGaiaV3UpgradeDisconnectAck *fu_struct_qc_gaia_v3_upgrade_disconnect_ack_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_qc_gaia_v3_upgrade_disconnect_ack_get_vendor_id(const FuStructQcGaiaV3UpgradeDisconnectAck *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_UPGRADE_DISCONNECT_ACK_OFFSET_VENDORID 0x0
#define FU_STRUCT_QC_GAIA_V3_UPGRADE_DISCONNECT_ACK_OFFSET_COMMAND 0x2
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_UPGRADE_DISCONNECT_ACK_SIZE 0x4
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_UPGRADE_DISCONNECT_ACK_DEFAULT_COMMAND FU_QC_GAIA_V3_CMD_UPGRADE_DISCONNECT_ACK
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructQcGaiaV3RegisterNotificationCmd;

FuStructQcGaiaV3RegisterNotificationCmd *fu_struct_qc_gaia_v3_register_notification_cmd_ref(FuStructQcGaiaV3RegisterNotificationCmd *st) G_GNUC_NON_NULL(1);
void fu_struct_qc_gaia_v3_register_notification_cmd_unref(FuStructQcGaiaV3RegisterNotificationCmd *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructQcGaiaV3RegisterNotificationCmd, fu_struct_qc_gaia_v3_register_notification_cmd_unref)
FuStructQcGaiaV3RegisterNotificationCmd *fu_struct_qc_gaia_v3_register_notification_cmd_new(void) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_qc_gaia_v3_register_notification_cmd_set_vendor_id(FuStructQcGaiaV3RegisterNotificationCmd *st, guint16 value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_REGISTER_NOTIFICATION_CMD_OFFSET_VENDORID 0x0
#define FU_STRUCT_QC_GAIA_V3_REGISTER_NOTIFICATION_CMD_OFFSET_COMMAND 0x2
#define FU_STRUCT_QC_GAIA_V3_REGISTER_NOTIFICATION_CMD_OFFSET_FEATURE 0x4
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_REGISTER_NOTIFICATION_CMD_SIZE 0x5
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_REGISTER_NOTIFICATION_CMD_DEFAULT_COMMAND FU_QC_GAIA_V3_CMD_REGISTER_NOTIFICATION_CMD
#define FU_STRUCT_QC_GAIA_V3_REGISTER_NOTIFICATION_CMD_DEFAULT_FEATURE 0x06
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructQcGaiaV3RegisterNotificationAck;

FuStructQcGaiaV3RegisterNotificationAck *fu_struct_qc_gaia_v3_register_notification_ack_ref(FuStructQcGaiaV3RegisterNotificationAck *st) G_GNUC_NON_NULL(1);
void fu_struct_qc_gaia_v3_register_notification_ack_unref(FuStructQcGaiaV3RegisterNotificationAck *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructQcGaiaV3RegisterNotificationAck, fu_struct_qc_gaia_v3_register_notification_ack_unref)
FuStructQcGaiaV3RegisterNotificationAck *fu_struct_qc_gaia_v3_register_notification_ack_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_qc_gaia_v3_register_notification_ack_get_vendor_id(const FuStructQcGaiaV3RegisterNotificationAck *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_REGISTER_NOTIFICATION_ACK_OFFSET_VENDORID 0x0
#define FU_STRUCT_QC_GAIA_V3_REGISTER_NOTIFICATION_ACK_OFFSET_COMMAND 0x2
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_REGISTER_NOTIFICATION_ACK_SIZE 0x4
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_REGISTER_NOTIFICATION_ACK_DEFAULT_COMMAND FU_QC_GAIA_V3_CMD_REGISTER_NOTIFICATION_ACK
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructQcGaiaV3UpgradeControlCmd;

FuStructQcGaiaV3UpgradeControlCmd *fu_struct_qc_gaia_v3_upgrade_control_cmd_ref(FuStructQcGaiaV3UpgradeControlCmd *st) G_GNUC_NON_NULL(1);
void fu_struct_qc_gaia_v3_upgrade_control_cmd_unref(FuStructQcGaiaV3UpgradeControlCmd *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructQcGaiaV3UpgradeControlCmd, fu_struct_qc_gaia_v3_upgrade_control_cmd_unref)
FuStructQcGaiaV3UpgradeControlCmd *fu_struct_qc_gaia_v3_upgrade_control_cmd_new(void) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_qc_gaia_v3_upgrade_control_cmd_set_vendor_id(FuStructQcGaiaV3UpgradeControlCmd *st, guint16 value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_UPGRADE_CONTROL_CMD_OFFSET_VENDORID 0x0
#define FU_STRUCT_QC_GAIA_V3_UPGRADE_CONTROL_CMD_OFFSET_COMMAND 0x2
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_UPGRADE_CONTROL_CMD_SIZE 0x4
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_UPGRADE_CONTROL_CMD_DEFAULT_COMMAND FU_QC_GAIA_V3_CMD_UPGRADE_CONTROL_CMD
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructQcGaiaV3UpgradeControlAck;

FuStructQcGaiaV3UpgradeControlAck *fu_struct_qc_gaia_v3_upgrade_control_ack_ref(FuStructQcGaiaV3UpgradeControlAck *st) G_GNUC_NON_NULL(1);
void fu_struct_qc_gaia_v3_upgrade_control_ack_unref(FuStructQcGaiaV3UpgradeControlAck *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructQcGaiaV3UpgradeControlAck, fu_struct_qc_gaia_v3_upgrade_control_ack_unref)
FuStructQcGaiaV3UpgradeControlAck *fu_struct_qc_gaia_v3_upgrade_control_ack_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_qc_gaia_v3_upgrade_control_ack_get_vendor_id(const FuStructQcGaiaV3UpgradeControlAck *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_UPGRADE_CONTROL_ACK_OFFSET_VENDORID 0x0
#define FU_STRUCT_QC_GAIA_V3_UPGRADE_CONTROL_ACK_OFFSET_COMMAND 0x2
#define FU_STRUCT_QC_GAIA_V3_UPGRADE_CONTROL_ACK_OFFSET_STATUS 0x4
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_UPGRADE_CONTROL_ACK_SIZE 0x5
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_QC_GAIA_V3_UPGRADE_CONTROL_ACK_DEFAULT_COMMAND FU_QC_GAIA_V3_CMD_UPGRADE_CONTROL_ACK
#define FU_STRUCT_QC_GAIA_V3_UPGRADE_CONTROL_ACK_DEFAULT_STATUS FU_QC_GAIA_CMD_STATUS_SUCCESS
#endif
