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

#pragma once
#include <fu-input-stream.h>
/**
 * FuIgscFwuHeciPartitionVersion:
 */
typedef enum {
    /**
     * FU_IGSC_FWU_HECI_PARTITION_VERSION_INVALID:
     */
    FU_IGSC_FWU_HECI_PARTITION_VERSION_INVALID,
    /**
     * FU_IGSC_FWU_HECI_PARTITION_VERSION_GFX_FW:
     */
    FU_IGSC_FWU_HECI_PARTITION_VERSION_GFX_FW,
    /**
     * FU_IGSC_FWU_HECI_PARTITION_VERSION_OPROM_DATA:
     */
    FU_IGSC_FWU_HECI_PARTITION_VERSION_OPROM_DATA,
    /**
     * FU_IGSC_FWU_HECI_PARTITION_VERSION_OPROM_CODE:
     */
    FU_IGSC_FWU_HECI_PARTITION_VERSION_OPROM_CODE,
}  FuIgscFwuHeciPartitionVersion;
#define FU_IGSC_FWU_HECI_PARTITION_VERSION_LAST 4
/**
 * FuIgscFwuHeciPayloadType:
 */
typedef enum {
    /**
     * FU_IGSC_FWU_HECI_PAYLOAD_TYPE_INVALID:
     */
    FU_IGSC_FWU_HECI_PAYLOAD_TYPE_INVALID,
    /**
     * FU_IGSC_FWU_HECI_PAYLOAD_TYPE_GFX_FW:
     */
    FU_IGSC_FWU_HECI_PAYLOAD_TYPE_GFX_FW,
    /**
     * FU_IGSC_FWU_HECI_PAYLOAD_TYPE_OPROM_DATA:
     */
    FU_IGSC_FWU_HECI_PAYLOAD_TYPE_OPROM_DATA,
    /**
     * FU_IGSC_FWU_HECI_PAYLOAD_TYPE_OPROM_CODE:
     */
    FU_IGSC_FWU_HECI_PAYLOAD_TYPE_OPROM_CODE,
    /**
     * FU_IGSC_FWU_HECI_PAYLOAD_TYPE_FWDATA:
     */
    FU_IGSC_FWU_HECI_PAYLOAD_TYPE_FWDATA = 5,
}  FuIgscFwuHeciPayloadType;
/**
 * FuIgscOpromIdx:
 */
typedef enum {
    /**
     * FU_IGSC_OPROM_IDX_UNKNOWN:
     */
    FU_IGSC_OPROM_IDX_UNKNOWN = 0x0,
    /**
     * FU_IGSC_OPROM_IDX_DATA:
     */
    FU_IGSC_OPROM_IDX_DATA = 0xF0,
    /**
     * FU_IGSC_OPROM_IDX_CODE:
     */
    FU_IGSC_OPROM_IDX_CODE = 0xF1,
}  FuIgscOpromIdx;
/**
 * FuIgscFwuHeciCommandId:
 */
typedef enum {
    /**
     * FU_IGSC_FWU_HECI_COMMAND_ID_INVALID:
     */
    FU_IGSC_FWU_HECI_COMMAND_ID_INVALID,
    /**
     * FU_IGSC_FWU_HECI_COMMAND_ID_START:
     *
     * start firmware update flow
     */
    FU_IGSC_FWU_HECI_COMMAND_ID_START,
    /**
     * FU_IGSC_FWU_HECI_COMMAND_ID_DATA:
     *
     * send firmware data to device
     */
    FU_IGSC_FWU_HECI_COMMAND_ID_DATA,
    /**
     * FU_IGSC_FWU_HECI_COMMAND_ID_END:
     *
     * last command in update
     */
    FU_IGSC_FWU_HECI_COMMAND_ID_END,
    /**
     * FU_IGSC_FWU_HECI_COMMAND_ID_GET_VERSION:
     *
     * retrieve version of a firmware
     */
    FU_IGSC_FWU_HECI_COMMAND_ID_GET_VERSION,
    /**
     * FU_IGSC_FWU_HECI_COMMAND_ID_NO_UPDATE:
     *
     * do not wait for firmware update
     */
    FU_IGSC_FWU_HECI_COMMAND_ID_NO_UPDATE,
    /**
     * FU_IGSC_FWU_HECI_COMMAND_ID_GET_IP_VERSION:
     *
     * retrieve version of a partition
     */
    FU_IGSC_FWU_HECI_COMMAND_ID_GET_IP_VERSION,
    /**
     * FU_IGSC_FWU_HECI_COMMAND_ID_GET_CONFIG:
     *
     * get hardware config
     */
    FU_IGSC_FWU_HECI_COMMAND_ID_GET_CONFIG,
    /**
     * FU_IGSC_FWU_HECI_COMMAND_ID_STATUS:
     *
     * get status of most recent update
     */
    FU_IGSC_FWU_HECI_COMMAND_ID_STATUS,
    /**
     * FU_IGSC_FWU_HECI_COMMAND_ID_GET_GFX_DATA_UPDATE_INFO:
     *
     * get signed firmware data info
     */
    FU_IGSC_FWU_HECI_COMMAND_ID_GET_GFX_DATA_UPDATE_INFO,
    /**
     * FU_IGSC_FWU_HECI_COMMAND_ID_GET_SUBSYSTEM_IDS:
     *
     * get subsystem ids (VID/DID)
     */
    FU_IGSC_FWU_HECI_COMMAND_ID_GET_SUBSYSTEM_IDS,
}  FuIgscFwuHeciCommandId;
#define FU_IGSC_FWU_HECI_COMMAND_ID_LAST 11
/**
 * FuIgscFwuHeciHdrFlags:
 */
typedef enum {
    /**
     * FU_IGSC_FWU_HECI_HDR_FLAG_NONE:
     */
    FU_IGSC_FWU_HECI_HDR_FLAG_NONE,
    /**
     * FU_IGSC_FWU_HECI_HDR_FLAG_IS_RESPONSE:
     */
    FU_IGSC_FWU_HECI_HDR_FLAG_IS_RESPONSE,
}  FuIgscFwuHeciHdrFlags;
#define FU_IGSC_FWU_HECI_HDR_FLAGS_LAST 2
/**
 * FuIgscFwuHeciStatus:
 */
typedef enum {
    /**
     * FU_IGSC_FWU_HECI_STATUS_SUCCESS:
     */
    FU_IGSC_FWU_HECI_STATUS_SUCCESS = 0x0,
    /**
     * FU_IGSC_FWU_HECI_STATUS_SIZE_ERROR:
     */
    FU_IGSC_FWU_HECI_STATUS_SIZE_ERROR = 0x5,
    /**
     * FU_IGSC_FWU_HECI_STATUS_INVALID_PARAMS:
     */
    FU_IGSC_FWU_HECI_STATUS_INVALID_PARAMS = 0x85,
    /**
     * FU_IGSC_FWU_HECI_STATUS_INVALID_COMMAND:
     */
    FU_IGSC_FWU_HECI_STATUS_INVALID_COMMAND = 0x8D,
    /**
     * FU_IGSC_FWU_HECI_STATUS_FAILURE:
     */
    FU_IGSC_FWU_HECI_STATUS_FAILURE = 0x9E,
    /**
     * FU_IGSC_FWU_HECI_STATUS_UPDATE_OPROM_INVALID_STRUCTURE:
     */
    FU_IGSC_FWU_HECI_STATUS_UPDATE_OPROM_INVALID_STRUCTURE = 0x1035,
    /**
     * FU_IGSC_FWU_HECI_STATUS_UPDATE_OPROM_SECTION_NOT_EXIST:
     */
    FU_IGSC_FWU_HECI_STATUS_UPDATE_OPROM_SECTION_NOT_EXIST = 0x1032,
}  FuIgscFwuHeciStatus;
/**
 * FuIgscFwuHeciGetConfigFlags:
 */
typedef enum {
    /**
     * FU_IGSC_FWU_HECI_GET_CONFIG_FLAG_NONE:
     */
    FU_IGSC_FWU_HECI_GET_CONFIG_FLAG_NONE,
    /**
     * FU_IGSC_FWU_HECI_GET_CONFIG_FLAG_OPROM_CODE_DEVID_ENFORCEMENT:
     */
    FU_IGSC_FWU_HECI_GET_CONFIG_FLAG_OPROM_CODE_DEVID_ENFORCEMENT,
}  FuIgscFwuHeciGetConfigFlags;
#define FU_IGSC_FWU_HECI_GET_CONFIG_FLAGS_LAST 2
/**
 * FuIgscFwuHeciStartFlags:
 *
 * Start
 */
typedef enum {
    /**
     * FU_IGSC_FWU_HECI_START_FLAG_NONE:
     */
    FU_IGSC_FWU_HECI_START_FLAG_NONE,
    /**
     * FU_IGSC_FWU_HECI_START_FLAG_FORCE_UPDATE:
     */
    FU_IGSC_FWU_HECI_START_FLAG_FORCE_UPDATE,
}  FuIgscFwuHeciStartFlags;
#define FU_IGSC_FWU_HECI_START_FLAGS_LAST 2
/**
 * FuIgscFwuExtType:
 */
typedef enum {
    /**
     * FU_IGSC_FWU_EXT_TYPE_DEVICE_TYPE:
     */
    FU_IGSC_FWU_EXT_TYPE_DEVICE_TYPE = 7,
    /**
     * FU_IGSC_FWU_EXT_TYPE_MODULE_ATTR:
     */
    FU_IGSC_FWU_EXT_TYPE_MODULE_ATTR = 10,
    /**
     * FU_IGSC_FWU_EXT_TYPE_SIGNED_PACKAGE_INFO:
     */
    FU_IGSC_FWU_EXT_TYPE_SIGNED_PACKAGE_INFO = 15,
    /**
     * FU_IGSC_FWU_EXT_TYPE_FWDATA_UPDATE:
     */
    FU_IGSC_FWU_EXT_TYPE_FWDATA_UPDATE = 29,
    /**
     * FU_IGSC_FWU_EXT_TYPE_IFWI_PART_MAN:
     */
    FU_IGSC_FWU_EXT_TYPE_IFWI_PART_MAN = 22,
    /**
     * FU_IGSC_FWU_EXT_TYPE_DEVICE_ID_ARRAY:
     */
    FU_IGSC_FWU_EXT_TYPE_DEVICE_ID_ARRAY = 37,
}  FuIgscFwuExtType;
const gchar *fu_igsc_fwu_ext_type_to_string(FuIgscFwuExtType val) G_GNUC_CONST;
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructIgscOpromVersion;

FuStructIgscOpromVersion *fu_struct_igsc_oprom_version_ref(FuStructIgscOpromVersion *st) G_GNUC_NON_NULL(1);
void fu_struct_igsc_oprom_version_unref(FuStructIgscOpromVersion *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructIgscOpromVersion, fu_struct_igsc_oprom_version_unref)
FuStructIgscOpromVersion *fu_struct_igsc_oprom_version_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_igsc_oprom_version_get_major(const FuStructIgscOpromVersion *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_igsc_oprom_version_get_minor(const FuStructIgscOpromVersion *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_igsc_oprom_version_get_hotfix(const FuStructIgscOpromVersion *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_igsc_oprom_version_get_build(const FuStructIgscOpromVersion *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_IGSC_OPROM_VERSION_OFFSET_MAJOR 0x0
#define FU_STRUCT_IGSC_OPROM_VERSION_OFFSET_MINOR 0x2
#define FU_STRUCT_IGSC_OPROM_VERSION_OFFSET_HOTFIX 0x4
#define FU_STRUCT_IGSC_OPROM_VERSION_OFFSET_BUILD 0x6
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_IGSC_OPROM_VERSION_SIZE 0x8
#endif

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

FuStructIgscFwVersion *fu_struct_igsc_fw_version_ref(FuStructIgscFwVersion *st) G_GNUC_NON_NULL(1);
void fu_struct_igsc_fw_version_unref(FuStructIgscFwVersion *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructIgscFwVersion, fu_struct_igsc_fw_version_unref)
FuStructIgscFwVersion *fu_struct_igsc_fw_version_new(void) G_GNUC_WARN_UNUSED_RESULT;
gchar *fu_struct_igsc_fw_version_get_project(const FuStructIgscFwVersion *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_igsc_fw_version_get_hotfix(const FuStructIgscFwVersion *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_igsc_fw_version_get_build(const FuStructIgscFwVersion *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
gboolean fu_struct_igsc_fw_version_set_project(FuStructIgscFwVersion *st, const gchar *value, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_igsc_fw_version_set_hotfix(FuStructIgscFwVersion *st, guint16 value) G_GNUC_NON_NULL(1);
void fu_struct_igsc_fw_version_set_build(FuStructIgscFwVersion *st, guint16 value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_IGSC_FW_VERSION_OFFSET_PROJECT 0x0
#define FU_STRUCT_IGSC_FW_VERSION_OFFSET_HOTFIX 0x4
#define FU_STRUCT_IGSC_FW_VERSION_OFFSET_BUILD 0x6
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_IGSC_FW_VERSION_SIZE_PROJECT 0x4
#define FU_STRUCT_IGSC_FW_VERSION_N_ELEMENTS_PROJECT 4
#define FU_STRUCT_IGSC_FW_VERSION_SIZE 0x8
#endif

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

FuIgscFwdataDeviceInfo2 *fu_igsc_fwdata_device_info2_ref(FuIgscFwdataDeviceInfo2 *st) G_GNUC_NON_NULL(1);
void fu_igsc_fwdata_device_info2_unref(FuIgscFwdataDeviceInfo2 *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuIgscFwdataDeviceInfo2, fu_igsc_fwdata_device_info2_unref)
FuIgscFwdataDeviceInfo2 *fu_igsc_fwdata_device_info2_parse_stream(GInputStream *stream, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_igsc_fwdata_device_info2_get_subsys_vendor_id(const FuIgscFwdataDeviceInfo2 *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_igsc_fwdata_device_info2_get_subsys_device_id(const FuIgscFwdataDeviceInfo2 *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_IGSC_FWDATA_DEVICE_INFO2_OFFSET_SUBSYS_VENDOR_ID 0x0
#define FU_IGSC_FWDATA_DEVICE_INFO2_OFFSET_SUBSYS_DEVICE_ID 0x2
#endif

#ifndef __GI_SCANNER__
#define FU_IGSC_FWDATA_DEVICE_INFO2_SIZE 0x4
#endif

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

FuIgscFwdataDeviceInfo4 *fu_igsc_fwdata_device_info4_ref(FuIgscFwdataDeviceInfo4 *st) G_GNUC_NON_NULL(1);
void fu_igsc_fwdata_device_info4_unref(FuIgscFwdataDeviceInfo4 *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuIgscFwdataDeviceInfo4, fu_igsc_fwdata_device_info4_unref)
FuIgscFwdataDeviceInfo4 *fu_igsc_fwdata_device_info4_new(void) G_GNUC_WARN_UNUSED_RESULT;
FuIgscFwdataDeviceInfo4 *fu_igsc_fwdata_device_info4_parse_stream(GInputStream *stream, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_igsc_fwdata_device_info4_get_vendor_id(const FuIgscFwdataDeviceInfo4 *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_igsc_fwdata_device_info4_get_device_id(const FuIgscFwdataDeviceInfo4 *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_igsc_fwdata_device_info4_get_subsys_vendor_id(const FuIgscFwdataDeviceInfo4 *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_igsc_fwdata_device_info4_get_subsys_device_id(const FuIgscFwdataDeviceInfo4 *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
void fu_igsc_fwdata_device_info4_set_vendor_id(FuIgscFwdataDeviceInfo4 *st, guint16 value) G_GNUC_NON_NULL(1);
void fu_igsc_fwdata_device_info4_set_device_id(FuIgscFwdataDeviceInfo4 *st, guint16 value) G_GNUC_NON_NULL(1);
void fu_igsc_fwdata_device_info4_set_subsys_vendor_id(FuIgscFwdataDeviceInfo4 *st, guint16 value) G_GNUC_NON_NULL(1);
void fu_igsc_fwdata_device_info4_set_subsys_device_id(FuIgscFwdataDeviceInfo4 *st, guint16 value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_IGSC_FWDATA_DEVICE_INFO4_OFFSET_VENDOR_ID 0x0
#define FU_IGSC_FWDATA_DEVICE_INFO4_OFFSET_DEVICE_ID 0x2
#define FU_IGSC_FWDATA_DEVICE_INFO4_OFFSET_SUBSYS_VENDOR_ID 0x4
#define FU_IGSC_FWDATA_DEVICE_INFO4_OFFSET_SUBSYS_DEVICE_ID 0x6
#endif

#ifndef __GI_SCANNER__
#define FU_IGSC_FWDATA_DEVICE_INFO4_SIZE 0x8
#endif

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

FuStructIgscFwuGwsImageInfo *fu_struct_igsc_fwu_gws_image_info_ref(FuStructIgscFwuGwsImageInfo *st) G_GNUC_NON_NULL(1);
void fu_struct_igsc_fwu_gws_image_info_unref(FuStructIgscFwuGwsImageInfo *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructIgscFwuGwsImageInfo, fu_struct_igsc_fwu_gws_image_info_unref)
FuStructIgscFwuGwsImageInfo *fu_struct_igsc_fwu_gws_image_info_parse_stream(GInputStream *stream, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_igsc_fwu_gws_image_info_get_instance_id(const FuStructIgscFwuGwsImageInfo *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_IGSC_FWU_GWS_IMAGE_INFO_OFFSET_FORMAT_VERSION 0x0
#define FU_STRUCT_IGSC_FWU_GWS_IMAGE_INFO_OFFSET_INSTANCE_ID 0x4
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_IGSC_FWU_GWS_IMAGE_INFO_SIZE 0x40
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_IGSC_FWU_GWS_IMAGE_INFO_DEFAULT_FORMAT_VERSION 0x1
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructIgscFwuFwImageData;

FuStructIgscFwuFwImageData *fu_struct_igsc_fwu_fw_image_data_ref(FuStructIgscFwuFwImageData *st) G_GNUC_NON_NULL(1);
void fu_struct_igsc_fwu_fw_image_data_unref(FuStructIgscFwuFwImageData *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructIgscFwuFwImageData, fu_struct_igsc_fwu_fw_image_data_unref)
guint16 fu_struct_igsc_fwu_fw_image_data_get_version_major(const FuStructIgscFwuFwImageData *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_igsc_fwu_fw_image_data_get_version_minor(const FuStructIgscFwuFwImageData *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_igsc_fwu_fw_image_data_get_version_hotfix(const FuStructIgscFwuFwImageData *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_igsc_fwu_fw_image_data_get_version_build(const FuStructIgscFwuFwImageData *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_igsc_fwu_fw_image_data_get_flags(const FuStructIgscFwuFwImageData *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_igsc_fwu_fw_image_data_get_fw_type(const FuStructIgscFwuFwImageData *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_igsc_fwu_fw_image_data_get_fw_sub_type(const FuStructIgscFwuFwImageData *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_igsc_fwu_fw_image_data_get_arb_svn(const FuStructIgscFwuFwImageData *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_igsc_fwu_fw_image_data_get_tcb_svn(const FuStructIgscFwuFwImageData *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_igsc_fwu_fw_image_data_get_vcn(const FuStructIgscFwuFwImageData *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_IGSC_FWU_FW_IMAGE_DATA_OFFSET_VERSION_MAJOR 0x0
#define FU_STRUCT_IGSC_FWU_FW_IMAGE_DATA_OFFSET_VERSION_MINOR 0x2
#define FU_STRUCT_IGSC_FWU_FW_IMAGE_DATA_OFFSET_VERSION_HOTFIX 0x4
#define FU_STRUCT_IGSC_FWU_FW_IMAGE_DATA_OFFSET_VERSION_BUILD 0x6
#define FU_STRUCT_IGSC_FWU_FW_IMAGE_DATA_OFFSET_FLAGS 0x8
#define FU_STRUCT_IGSC_FWU_FW_IMAGE_DATA_OFFSET_FW_TYPE 0xA
#define FU_STRUCT_IGSC_FWU_FW_IMAGE_DATA_OFFSET_FW_SUB_TYPE 0xB
#define FU_STRUCT_IGSC_FWU_FW_IMAGE_DATA_OFFSET_ARB_SVN 0xC
#define FU_STRUCT_IGSC_FWU_FW_IMAGE_DATA_OFFSET_TCB_SVN 0x10
#define FU_STRUCT_IGSC_FWU_FW_IMAGE_DATA_OFFSET_VCN 0x14
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_IGSC_FWU_FW_IMAGE_DATA_SIZE 0x18
#endif

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

FuStructIgscFwuIupData *fu_struct_igsc_fwu_iup_data_ref(FuStructIgscFwuIupData *st) G_GNUC_NON_NULL(1);
void fu_struct_igsc_fwu_iup_data_unref(FuStructIgscFwuIupData *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructIgscFwuIupData, fu_struct_igsc_fwu_iup_data_unref)
guint32 fu_struct_igsc_fwu_iup_data_get_iup_name(const FuStructIgscFwuIupData *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_igsc_fwu_iup_data_get_flags(const FuStructIgscFwuIupData *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_igsc_fwu_iup_data_get_svn(const FuStructIgscFwuIupData *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_igsc_fwu_iup_data_get_vcn(const FuStructIgscFwuIupData *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_IGSC_FWU_IUP_DATA_OFFSET_IUP_NAME 0x0
#define FU_STRUCT_IGSC_FWU_IUP_DATA_OFFSET_FLAGS 0x4
#define FU_STRUCT_IGSC_FWU_IUP_DATA_OFFSET_SVN 0x8
#define FU_STRUCT_IGSC_FWU_IUP_DATA_OFFSET_VCN 0xC
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_IGSC_FWU_IUP_DATA_SIZE 0x10
#endif

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

FuStructIgscFwuHeciImageMetadata *fu_struct_igsc_fwu_heci_image_metadata_ref(FuStructIgscFwuHeciImageMetadata *st) G_GNUC_NON_NULL(1);
void fu_struct_igsc_fwu_heci_image_metadata_unref(FuStructIgscFwuHeciImageMetadata *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructIgscFwuHeciImageMetadata, fu_struct_igsc_fwu_heci_image_metadata_unref)
FuStructIgscFwuHeciImageMetadata *fu_struct_igsc_fwu_heci_image_metadata_new(void) G_GNUC_WARN_UNUSED_RESULT;
GBytes *fu_struct_igsc_fwu_heci_image_metadata_to_bytes(const FuStructIgscFwuHeciImageMetadata *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_igsc_fwu_heci_image_metadata_get_version_format(const FuStructIgscFwuHeciImageMetadata *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_igsc_fwu_heci_image_metadata_set_version_format(FuStructIgscFwuHeciImageMetadata *st, guint32 value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_IGSC_FWU_HECI_IMAGE_METADATA_OFFSET_VERSION_FORMAT 0x0
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_IGSC_FWU_HECI_IMAGE_METADATA_SIZE 0x4
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_IGSC_FWU_HECI_IMAGE_METADATA_DEFAULT_VERSION_FORMAT 0x1
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructIgscFwuImageMetadataV1;

FuStructIgscFwuImageMetadataV1 *fu_struct_igsc_fwu_image_metadata_v1_ref(FuStructIgscFwuImageMetadataV1 *st) G_GNUC_NON_NULL(1);
void fu_struct_igsc_fwu_image_metadata_v1_unref(FuStructIgscFwuImageMetadataV1 *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructIgscFwuImageMetadataV1, fu_struct_igsc_fwu_image_metadata_v1_unref)
FuStructIgscFwuImageMetadataV1 *fu_struct_igsc_fwu_image_metadata_v1_parse_stream(GInputStream *stream, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_igsc_fwu_image_metadata_v1_get_version_format(const FuStructIgscFwuImageMetadataV1 *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
gchar *fu_struct_igsc_fwu_image_metadata_v1_get_project(const FuStructIgscFwuImageMetadataV1 *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_igsc_fwu_image_metadata_v1_get_version_hotfix(const FuStructIgscFwuImageMetadataV1 *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_igsc_fwu_image_metadata_v1_get_version_build(const FuStructIgscFwuImageMetadataV1 *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuStructIgscFwuFwImageData *fu_struct_igsc_fwu_image_metadata_v1_get_image_data(const FuStructIgscFwuImageMetadataV1 *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_IGSC_FWU_IMAGE_METADATA_V1_OFFSET_VERSION_FORMAT 0x0
#define FU_STRUCT_IGSC_FWU_IMAGE_METADATA_V1_OFFSET_PROJECT 0x4
#define FU_STRUCT_IGSC_FWU_IMAGE_METADATA_V1_OFFSET_VERSION_HOTFIX 0x8
#define FU_STRUCT_IGSC_FWU_IMAGE_METADATA_V1_OFFSET_VERSION_BUILD 0xA
#define FU_STRUCT_IGSC_FWU_IMAGE_METADATA_V1_OFFSET_IMAGE_DATA 0xC
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_IGSC_FWU_IMAGE_METADATA_V1_SIZE_PROJECT 0x4
#define FU_STRUCT_IGSC_FWU_IMAGE_METADATA_V1_N_ELEMENTS_PROJECT 4
#define FU_STRUCT_IGSC_FWU_IMAGE_METADATA_V1_SIZE 0x24
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_IGSC_FWU_IMAGE_METADATA_V1_DEFAULT_VERSION_FORMAT 0x1
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuIgscFwuHeciVersionReq;

FuIgscFwuHeciVersionReq *fu_igsc_fwu_heci_version_req_ref(FuIgscFwuHeciVersionReq *st) G_GNUC_NON_NULL(1);
void fu_igsc_fwu_heci_version_req_unref(FuIgscFwuHeciVersionReq *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuIgscFwuHeciVersionReq, fu_igsc_fwu_heci_version_req_unref)
FuIgscFwuHeciVersionReq *fu_igsc_fwu_heci_version_req_new(void) G_GNUC_WARN_UNUSED_RESULT;
void fu_igsc_fwu_heci_version_req_set_partition(FuIgscFwuHeciVersionReq *st, guint32 value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_IGSC_FWU_HECI_VERSION_REQ_OFFSET_COMMAND_ID 0x0
#define FU_IGSC_FWU_HECI_VERSION_REQ_OFFSET_HDR_FLAGS 0x1
#define FU_IGSC_FWU_HECI_VERSION_REQ_OFFSET_PARTITION 0x4
#endif

#ifndef __GI_SCANNER__
#define FU_IGSC_FWU_HECI_VERSION_REQ_SIZE 0x8
#endif

#ifndef __GI_SCANNER__
#define FU_IGSC_FWU_HECI_VERSION_REQ_DEFAULT_COMMAND_ID FU_IGSC_FWU_HECI_COMMAND_ID_GET_IP_VERSION
#define FU_IGSC_FWU_HECI_VERSION_REQ_DEFAULT_HDR_FLAGS FU_IGSC_FWU_HECI_HDR_FLAG_NONE
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuIgscFwuHeciVersionRes;

FuIgscFwuHeciVersionRes *fu_igsc_fwu_heci_version_res_ref(FuIgscFwuHeciVersionRes *st) G_GNUC_NON_NULL(1);
void fu_igsc_fwu_heci_version_res_unref(FuIgscFwuHeciVersionRes *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuIgscFwuHeciVersionRes, fu_igsc_fwu_heci_version_res_unref)
FuIgscFwuHeciVersionRes *fu_igsc_fwu_heci_version_res_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuIgscFwuHeciStatus fu_igsc_fwu_heci_version_res_get_status(const FuIgscFwuHeciVersionRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_igsc_fwu_heci_version_res_get_partition(const FuIgscFwuHeciVersionRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_igsc_fwu_heci_version_res_get_version_length(const FuIgscFwuHeciVersionRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_IGSC_FWU_HECI_VERSION_RES_OFFSET_COMMAND_ID 0x0
#define FU_IGSC_FWU_HECI_VERSION_RES_OFFSET_HDR_FLAGS 0x1
#define FU_IGSC_FWU_HECI_VERSION_RES_OFFSET_STATUS 0x4
#define FU_IGSC_FWU_HECI_VERSION_RES_OFFSET_PARTITION 0xC
#define FU_IGSC_FWU_HECI_VERSION_RES_OFFSET_VERSION_LENGTH 0x10
#endif

#ifndef __GI_SCANNER__
#define FU_IGSC_FWU_HECI_VERSION_RES_SIZE 0x14
#endif

#ifndef __GI_SCANNER__
#define FU_IGSC_FWU_HECI_VERSION_RES_DEFAULT_COMMAND_ID FU_IGSC_FWU_HECI_COMMAND_ID_GET_IP_VERSION
#define FU_IGSC_FWU_HECI_VERSION_RES_DEFAULT_HDR_FLAGS FU_IGSC_FWU_HECI_HDR_FLAG_IS_RESPONSE
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuIgscFwDataHeciVersionReq;

FuIgscFwDataHeciVersionReq *fu_igsc_fw_data_heci_version_req_ref(FuIgscFwDataHeciVersionReq *st) G_GNUC_NON_NULL(1);
void fu_igsc_fw_data_heci_version_req_unref(FuIgscFwDataHeciVersionReq *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuIgscFwDataHeciVersionReq, fu_igsc_fw_data_heci_version_req_unref)
FuIgscFwDataHeciVersionReq *fu_igsc_fw_data_heci_version_req_new(void) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_IGSC_FW_DATA_HECI_VERSION_REQ_OFFSET_COMMAND_ID 0x0
#define FU_IGSC_FW_DATA_HECI_VERSION_REQ_OFFSET_HDR_FLAGS 0x1
#endif

#ifndef __GI_SCANNER__
#define FU_IGSC_FW_DATA_HECI_VERSION_REQ_SIZE 0xC
#endif

#ifndef __GI_SCANNER__
#define FU_IGSC_FW_DATA_HECI_VERSION_REQ_DEFAULT_COMMAND_ID FU_IGSC_FWU_HECI_COMMAND_ID_GET_GFX_DATA_UPDATE_INFO
#define FU_IGSC_FW_DATA_HECI_VERSION_REQ_DEFAULT_HDR_FLAGS FU_IGSC_FWU_HECI_HDR_FLAG_NONE
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuIgscFwDataHeciVersionRes;

FuIgscFwDataHeciVersionRes *fu_igsc_fw_data_heci_version_res_ref(FuIgscFwDataHeciVersionRes *st) G_GNUC_NON_NULL(1);
void fu_igsc_fw_data_heci_version_res_unref(FuIgscFwDataHeciVersionRes *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuIgscFwDataHeciVersionRes, fu_igsc_fw_data_heci_version_res_unref)
FuIgscFwDataHeciVersionRes *fu_igsc_fw_data_heci_version_res_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuIgscFwuHeciStatus fu_igsc_fw_data_heci_version_res_get_status(const FuIgscFwDataHeciVersionRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_igsc_fw_data_heci_version_res_get_oem_version_nvm(const FuIgscFwDataHeciVersionRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_igsc_fw_data_heci_version_res_get_oem_version_fitb(const FuIgscFwDataHeciVersionRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_igsc_fw_data_heci_version_res_get_major_version(const FuIgscFwDataHeciVersionRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_igsc_fw_data_heci_version_res_get_major_vcn(const FuIgscFwDataHeciVersionRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_igsc_fw_data_heci_version_res_get_oem_version_fitb_valid(const FuIgscFwDataHeciVersionRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_IGSC_FW_DATA_HECI_VERSION_RES_OFFSET_COMMAND_ID 0x0
#define FU_IGSC_FW_DATA_HECI_VERSION_RES_OFFSET_HDR_FLAGS 0x1
#define FU_IGSC_FW_DATA_HECI_VERSION_RES_OFFSET_STATUS 0x4
#define FU_IGSC_FW_DATA_HECI_VERSION_RES_OFFSET_OEM_VERSION_NVM 0x10
#define FU_IGSC_FW_DATA_HECI_VERSION_RES_OFFSET_OEM_VERSION_FITB 0x14
#define FU_IGSC_FW_DATA_HECI_VERSION_RES_OFFSET_MAJOR_VERSION 0x18
#define FU_IGSC_FW_DATA_HECI_VERSION_RES_OFFSET_MAJOR_VCN 0x1A
#define FU_IGSC_FW_DATA_HECI_VERSION_RES_OFFSET_OEM_VERSION_FITB_VALID 0x1C
#endif

#ifndef __GI_SCANNER__
#define FU_IGSC_FW_DATA_HECI_VERSION_RES_SIZE 0x40
#endif

#ifndef __GI_SCANNER__
#define FU_IGSC_FW_DATA_HECI_VERSION_RES_DEFAULT_COMMAND_ID FU_IGSC_FWU_HECI_COMMAND_ID_GET_GFX_DATA_UPDATE_INFO
#define FU_IGSC_FW_DATA_HECI_VERSION_RES_DEFAULT_HDR_FLAGS FU_IGSC_FWU_HECI_HDR_FLAG_IS_RESPONSE
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuIgscFwuHeciGetSubsystemIdsReq;

FuIgscFwuHeciGetSubsystemIdsReq *fu_igsc_fwu_heci_get_subsystem_ids_req_ref(FuIgscFwuHeciGetSubsystemIdsReq *st) G_GNUC_NON_NULL(1);
void fu_igsc_fwu_heci_get_subsystem_ids_req_unref(FuIgscFwuHeciGetSubsystemIdsReq *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuIgscFwuHeciGetSubsystemIdsReq, fu_igsc_fwu_heci_get_subsystem_ids_req_unref)
FuIgscFwuHeciGetSubsystemIdsReq *fu_igsc_fwu_heci_get_subsystem_ids_req_new(void) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_IGSC_FWU_HECI_GET_SUBSYSTEM_IDS_REQ_OFFSET_COMMAND_ID 0x0
#define FU_IGSC_FWU_HECI_GET_SUBSYSTEM_IDS_REQ_OFFSET_HDR_FLAGS 0x1
#endif

#ifndef __GI_SCANNER__
#define FU_IGSC_FWU_HECI_GET_SUBSYSTEM_IDS_REQ_SIZE 0xC
#endif

#ifndef __GI_SCANNER__
#define FU_IGSC_FWU_HECI_GET_SUBSYSTEM_IDS_REQ_DEFAULT_COMMAND_ID FU_IGSC_FWU_HECI_COMMAND_ID_GET_SUBSYSTEM_IDS
#define FU_IGSC_FWU_HECI_GET_SUBSYSTEM_IDS_REQ_DEFAULT_HDR_FLAGS FU_IGSC_FWU_HECI_HDR_FLAG_NONE
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuIgscFwuHeciGetSubsystemIdsRes;

FuIgscFwuHeciGetSubsystemIdsRes *fu_igsc_fwu_heci_get_subsystem_ids_res_ref(FuIgscFwuHeciGetSubsystemIdsRes *st) G_GNUC_NON_NULL(1);
void fu_igsc_fwu_heci_get_subsystem_ids_res_unref(FuIgscFwuHeciGetSubsystemIdsRes *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuIgscFwuHeciGetSubsystemIdsRes, fu_igsc_fwu_heci_get_subsystem_ids_res_unref)
FuIgscFwuHeciGetSubsystemIdsRes *fu_igsc_fwu_heci_get_subsystem_ids_res_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuIgscFwuHeciStatus fu_igsc_fwu_heci_get_subsystem_ids_res_get_status(const FuIgscFwuHeciGetSubsystemIdsRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_igsc_fwu_heci_get_subsystem_ids_res_get_ssvid(const FuIgscFwuHeciGetSubsystemIdsRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_igsc_fwu_heci_get_subsystem_ids_res_get_ssdid(const FuIgscFwuHeciGetSubsystemIdsRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_IGSC_FWU_HECI_GET_SUBSYSTEM_IDS_RES_OFFSET_COMMAND_ID 0x0
#define FU_IGSC_FWU_HECI_GET_SUBSYSTEM_IDS_RES_OFFSET_HDR_FLAGS 0x1
#define FU_IGSC_FWU_HECI_GET_SUBSYSTEM_IDS_RES_OFFSET_STATUS 0x4
#define FU_IGSC_FWU_HECI_GET_SUBSYSTEM_IDS_RES_OFFSET_SSVID 0xC
#define FU_IGSC_FWU_HECI_GET_SUBSYSTEM_IDS_RES_OFFSET_SSDID 0xE
#endif

#ifndef __GI_SCANNER__
#define FU_IGSC_FWU_HECI_GET_SUBSYSTEM_IDS_RES_SIZE 0x18
#endif

#ifndef __GI_SCANNER__
#define FU_IGSC_FWU_HECI_GET_SUBSYSTEM_IDS_RES_DEFAULT_COMMAND_ID FU_IGSC_FWU_HECI_COMMAND_ID_GET_SUBSYSTEM_IDS
#define FU_IGSC_FWU_HECI_GET_SUBSYSTEM_IDS_RES_DEFAULT_HDR_FLAGS FU_IGSC_FWU_HECI_HDR_FLAG_IS_RESPONSE
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuIgscFwuHeciGetConfigReq;

FuIgscFwuHeciGetConfigReq *fu_igsc_fwu_heci_get_config_req_ref(FuIgscFwuHeciGetConfigReq *st) G_GNUC_NON_NULL(1);
void fu_igsc_fwu_heci_get_config_req_unref(FuIgscFwuHeciGetConfigReq *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuIgscFwuHeciGetConfigReq, fu_igsc_fwu_heci_get_config_req_unref)
FuIgscFwuHeciGetConfigReq *fu_igsc_fwu_heci_get_config_req_new(void) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_IGSC_FWU_HECI_GET_CONFIG_REQ_OFFSET_COMMAND_ID 0x0
#define FU_IGSC_FWU_HECI_GET_CONFIG_REQ_OFFSET_HDR_FLAGS 0x1
#endif

#ifndef __GI_SCANNER__
#define FU_IGSC_FWU_HECI_GET_CONFIG_REQ_SIZE 0xC
#endif

#ifndef __GI_SCANNER__
#define FU_IGSC_FWU_HECI_GET_CONFIG_REQ_DEFAULT_COMMAND_ID FU_IGSC_FWU_HECI_COMMAND_ID_GET_CONFIG
#define FU_IGSC_FWU_HECI_GET_CONFIG_REQ_DEFAULT_HDR_FLAGS FU_IGSC_FWU_HECI_HDR_FLAG_NONE
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuIgscFwuHeciGetConfigRes;

FuIgscFwuHeciGetConfigRes *fu_igsc_fwu_heci_get_config_res_ref(FuIgscFwuHeciGetConfigRes *st) G_GNUC_NON_NULL(1);
void fu_igsc_fwu_heci_get_config_res_unref(FuIgscFwuHeciGetConfigRes *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuIgscFwuHeciGetConfigRes, fu_igsc_fwu_heci_get_config_res_unref)
FuIgscFwuHeciGetConfigRes *fu_igsc_fwu_heci_get_config_res_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuIgscFwuHeciStatus fu_igsc_fwu_heci_get_config_res_get_status(const FuIgscFwuHeciGetConfigRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_igsc_fwu_heci_get_config_res_get_hw_sku(const FuIgscFwuHeciGetConfigRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuIgscFwuHeciGetConfigFlags fu_igsc_fwu_heci_get_config_res_get_flags(const FuIgscFwuHeciGetConfigRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_IGSC_FWU_HECI_GET_CONFIG_RES_OFFSET_COMMAND_ID 0x0
#define FU_IGSC_FWU_HECI_GET_CONFIG_RES_OFFSET_HDR_FLAGS 0x1
#define FU_IGSC_FWU_HECI_GET_CONFIG_RES_OFFSET_STATUS 0x4
#define FU_IGSC_FWU_HECI_GET_CONFIG_RES_OFFSET_HW_SKU 0x14
#define FU_IGSC_FWU_HECI_GET_CONFIG_RES_OFFSET_FLAGS 0x18
#endif

#ifndef __GI_SCANNER__
#define FU_IGSC_FWU_HECI_GET_CONFIG_RES_SIZE 0x3C
#endif

#ifndef __GI_SCANNER__
#define FU_IGSC_FWU_HECI_GET_CONFIG_RES_DEFAULT_COMMAND_ID FU_IGSC_FWU_HECI_COMMAND_ID_GET_CONFIG
#define FU_IGSC_FWU_HECI_GET_CONFIG_RES_DEFAULT_HDR_FLAGS FU_IGSC_FWU_HECI_HDR_FLAG_IS_RESPONSE
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuIgscFwuHeciEndReq;

FuIgscFwuHeciEndReq *fu_igsc_fwu_heci_end_req_ref(FuIgscFwuHeciEndReq *st) G_GNUC_NON_NULL(1);
void fu_igsc_fwu_heci_end_req_unref(FuIgscFwuHeciEndReq *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuIgscFwuHeciEndReq, fu_igsc_fwu_heci_end_req_unref)
FuIgscFwuHeciEndReq *fu_igsc_fwu_heci_end_req_new(void) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_IGSC_FWU_HECI_END_REQ_OFFSET_COMMAND_ID 0x0
#define FU_IGSC_FWU_HECI_END_REQ_OFFSET_HDR_FLAGS 0x1
#endif

#ifndef __GI_SCANNER__
#define FU_IGSC_FWU_HECI_END_REQ_SIZE 0x8
#endif

#ifndef __GI_SCANNER__
#define FU_IGSC_FWU_HECI_END_REQ_DEFAULT_COMMAND_ID FU_IGSC_FWU_HECI_COMMAND_ID_END
#define FU_IGSC_FWU_HECI_END_REQ_DEFAULT_HDR_FLAGS FU_IGSC_FWU_HECI_HDR_FLAG_NONE
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuIgscFwuHeciEndRes;

FuIgscFwuHeciEndRes *fu_igsc_fwu_heci_end_res_ref(FuIgscFwuHeciEndRes *st) G_GNUC_NON_NULL(1);
void fu_igsc_fwu_heci_end_res_unref(FuIgscFwuHeciEndRes *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuIgscFwuHeciEndRes, fu_igsc_fwu_heci_end_res_unref)
FuIgscFwuHeciEndRes *fu_igsc_fwu_heci_end_res_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuIgscFwuHeciStatus fu_igsc_fwu_heci_end_res_get_status(const FuIgscFwuHeciEndRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_IGSC_FWU_HECI_END_RES_OFFSET_COMMAND_ID 0x0
#define FU_IGSC_FWU_HECI_END_RES_OFFSET_HDR_FLAGS 0x1
#define FU_IGSC_FWU_HECI_END_RES_OFFSET_STATUS 0x4
#endif

#ifndef __GI_SCANNER__
#define FU_IGSC_FWU_HECI_END_RES_SIZE 0xC
#endif

#ifndef __GI_SCANNER__
#define FU_IGSC_FWU_HECI_END_RES_DEFAULT_COMMAND_ID FU_IGSC_FWU_HECI_COMMAND_ID_END
#define FU_IGSC_FWU_HECI_END_RES_DEFAULT_HDR_FLAGS FU_IGSC_FWU_HECI_HDR_FLAG_IS_RESPONSE
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuIgscFwuHeciDataReq;

FuIgscFwuHeciDataReq *fu_igsc_fwu_heci_data_req_ref(FuIgscFwuHeciDataReq *st) G_GNUC_NON_NULL(1);
void fu_igsc_fwu_heci_data_req_unref(FuIgscFwuHeciDataReq *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuIgscFwuHeciDataReq, fu_igsc_fwu_heci_data_req_unref)
FuIgscFwuHeciDataReq *fu_igsc_fwu_heci_data_req_new(void) G_GNUC_WARN_UNUSED_RESULT;
void fu_igsc_fwu_heci_data_req_set_data_length(FuIgscFwuHeciDataReq *st, guint32 value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_IGSC_FWU_HECI_DATA_REQ_OFFSET_COMMAND_ID 0x0
#define FU_IGSC_FWU_HECI_DATA_REQ_OFFSET_HDR_FLAGS 0x1
#define FU_IGSC_FWU_HECI_DATA_REQ_OFFSET_DATA_LENGTH 0x4
#endif

#ifndef __GI_SCANNER__
#define FU_IGSC_FWU_HECI_DATA_REQ_SIZE 0xC
#endif

#ifndef __GI_SCANNER__
#define FU_IGSC_FWU_HECI_DATA_REQ_DEFAULT_COMMAND_ID FU_IGSC_FWU_HECI_COMMAND_ID_DATA
#define FU_IGSC_FWU_HECI_DATA_REQ_DEFAULT_HDR_FLAGS FU_IGSC_FWU_HECI_HDR_FLAG_NONE
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuIgscFwuHeciDataRes;

FuIgscFwuHeciDataRes *fu_igsc_fwu_heci_data_res_ref(FuIgscFwuHeciDataRes *st) G_GNUC_NON_NULL(1);
void fu_igsc_fwu_heci_data_res_unref(FuIgscFwuHeciDataRes *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuIgscFwuHeciDataRes, fu_igsc_fwu_heci_data_res_unref)
FuIgscFwuHeciDataRes *fu_igsc_fwu_heci_data_res_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuIgscFwuHeciStatus fu_igsc_fwu_heci_data_res_get_status(const FuIgscFwuHeciDataRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_IGSC_FWU_HECI_DATA_RES_OFFSET_COMMAND_ID 0x0
#define FU_IGSC_FWU_HECI_DATA_RES_OFFSET_HDR_FLAGS 0x1
#define FU_IGSC_FWU_HECI_DATA_RES_OFFSET_STATUS 0x4
#endif

#ifndef __GI_SCANNER__
#define FU_IGSC_FWU_HECI_DATA_RES_SIZE 0xC
#endif

#ifndef __GI_SCANNER__
#define FU_IGSC_FWU_HECI_DATA_RES_DEFAULT_COMMAND_ID FU_IGSC_FWU_HECI_COMMAND_ID_DATA
#define FU_IGSC_FWU_HECI_DATA_RES_DEFAULT_HDR_FLAGS FU_IGSC_FWU_HECI_HDR_FLAG_IS_RESPONSE
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuIgscFwuHeciStartReq;

FuIgscFwuHeciStartReq *fu_igsc_fwu_heci_start_req_ref(FuIgscFwuHeciStartReq *st) G_GNUC_NON_NULL(1);
void fu_igsc_fwu_heci_start_req_unref(FuIgscFwuHeciStartReq *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuIgscFwuHeciStartReq, fu_igsc_fwu_heci_start_req_unref)
FuIgscFwuHeciStartReq *fu_igsc_fwu_heci_start_req_new(void) G_GNUC_WARN_UNUSED_RESULT;
void fu_igsc_fwu_heci_start_req_set_update_img_length(FuIgscFwuHeciStartReq *st, guint32 value) G_GNUC_NON_NULL(1);
void fu_igsc_fwu_heci_start_req_set_payload_type(FuIgscFwuHeciStartReq *st, FuIgscFwuHeciPayloadType value) G_GNUC_NON_NULL(1);
void fu_igsc_fwu_heci_start_req_set_flags(FuIgscFwuHeciStartReq *st, FuIgscFwuHeciStartFlags value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_IGSC_FWU_HECI_START_REQ_OFFSET_COMMAND_ID 0x0
#define FU_IGSC_FWU_HECI_START_REQ_OFFSET_HDR_FLAGS 0x1
#define FU_IGSC_FWU_HECI_START_REQ_OFFSET_UPDATE_IMG_LENGTH 0x4
#define FU_IGSC_FWU_HECI_START_REQ_OFFSET_PAYLOAD_TYPE 0x8
#define FU_IGSC_FWU_HECI_START_REQ_OFFSET_FLAGS 0xC
#endif

#ifndef __GI_SCANNER__
#define FU_IGSC_FWU_HECI_START_REQ_SIZE 0x30
#endif

#ifndef __GI_SCANNER__
#define FU_IGSC_FWU_HECI_START_REQ_DEFAULT_COMMAND_ID FU_IGSC_FWU_HECI_COMMAND_ID_START
#define FU_IGSC_FWU_HECI_START_REQ_DEFAULT_HDR_FLAGS FU_IGSC_FWU_HECI_HDR_FLAG_NONE
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuIgscFwuHeciStartRes;

FuIgscFwuHeciStartRes *fu_igsc_fwu_heci_start_res_ref(FuIgscFwuHeciStartRes *st) G_GNUC_NON_NULL(1);
void fu_igsc_fwu_heci_start_res_unref(FuIgscFwuHeciStartRes *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuIgscFwuHeciStartRes, fu_igsc_fwu_heci_start_res_unref)
FuIgscFwuHeciStartRes *fu_igsc_fwu_heci_start_res_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuIgscFwuHeciStatus fu_igsc_fwu_heci_start_res_get_status(const FuIgscFwuHeciStartRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_IGSC_FWU_HECI_START_RES_OFFSET_COMMAND_ID 0x0
#define FU_IGSC_FWU_HECI_START_RES_OFFSET_HDR_FLAGS 0x1
#define FU_IGSC_FWU_HECI_START_RES_OFFSET_STATUS 0x4
#endif

#ifndef __GI_SCANNER__
#define FU_IGSC_FWU_HECI_START_RES_SIZE 0xC
#endif

#ifndef __GI_SCANNER__
#define FU_IGSC_FWU_HECI_START_RES_DEFAULT_COMMAND_ID FU_IGSC_FWU_HECI_COMMAND_ID_START
#define FU_IGSC_FWU_HECI_START_RES_DEFAULT_HDR_FLAGS FU_IGSC_FWU_HECI_HDR_FLAG_IS_RESPONSE
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuIgscFwuHeciNoUpdateReq;

FuIgscFwuHeciNoUpdateReq *fu_igsc_fwu_heci_no_update_req_ref(FuIgscFwuHeciNoUpdateReq *st) G_GNUC_NON_NULL(1);
void fu_igsc_fwu_heci_no_update_req_unref(FuIgscFwuHeciNoUpdateReq *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuIgscFwuHeciNoUpdateReq, fu_igsc_fwu_heci_no_update_req_unref)
FuIgscFwuHeciNoUpdateReq *fu_igsc_fwu_heci_no_update_req_new(void) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_IGSC_FWU_HECI_NO_UPDATE_REQ_OFFSET_COMMAND_ID 0x0
#define FU_IGSC_FWU_HECI_NO_UPDATE_REQ_OFFSET_HDR_FLAGS 0x1
#endif

#ifndef __GI_SCANNER__
#define FU_IGSC_FWU_HECI_NO_UPDATE_REQ_SIZE 0x8
#endif

#ifndef __GI_SCANNER__
#define FU_IGSC_FWU_HECI_NO_UPDATE_REQ_DEFAULT_COMMAND_ID FU_IGSC_FWU_HECI_COMMAND_ID_NO_UPDATE
#define FU_IGSC_FWU_HECI_NO_UPDATE_REQ_DEFAULT_HDR_FLAGS FU_IGSC_FWU_HECI_HDR_FLAG_NONE
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructIgscFwdataVersion;

FuStructIgscFwdataVersion *fu_struct_igsc_fwdata_version_ref(FuStructIgscFwdataVersion *st) G_GNUC_NON_NULL(1);
void fu_struct_igsc_fwdata_version_unref(FuStructIgscFwdataVersion *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructIgscFwdataVersion, fu_struct_igsc_fwdata_version_unref)
FuStructIgscFwdataVersion *fu_struct_igsc_fwdata_version_parse_stream(GInputStream *stream, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_igsc_fwdata_version_get_oem_manuf_data_version(const FuStructIgscFwdataVersion *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_igsc_fwdata_version_get_major_version(const FuStructIgscFwdataVersion *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_igsc_fwdata_version_get_major_vcn(const FuStructIgscFwdataVersion *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_igsc_fwdata_version_get_key_index(const FuStructIgscFwdataVersion *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_igsc_fwdata_version_get_data_arb_svn(const FuStructIgscFwdataVersion *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_IGSC_FWDATA_VERSION_OFFSET_OEM_MANUF_DATA_VERSION 0x0
#define FU_STRUCT_IGSC_FWDATA_VERSION_OFFSET_MAJOR_VERSION 0x4
#define FU_STRUCT_IGSC_FWDATA_VERSION_OFFSET_MAJOR_VCN 0x6
#define FU_STRUCT_IGSC_FWDATA_VERSION_OFFSET_KEY_INDEX 0x8
#define FU_STRUCT_IGSC_FWDATA_VERSION_OFFSET_DATA_ARB_SVN 0xC
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_IGSC_FWDATA_VERSION_SIZE 0x20
#endif

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

FuStructIgscFwdataUpdateExt *fu_struct_igsc_fwdata_update_ext_ref(FuStructIgscFwdataUpdateExt *st) G_GNUC_NON_NULL(1);
void fu_struct_igsc_fwdata_update_ext_unref(FuStructIgscFwdataUpdateExt *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructIgscFwdataUpdateExt, fu_struct_igsc_fwdata_update_ext_unref)

#ifndef __GI_SCANNER__
#define FU_STRUCT_IGSC_FWDATA_UPDATE_EXT_OFFSET_EXTENSION_TYPE 0x0
#define FU_STRUCT_IGSC_FWDATA_UPDATE_EXT_OFFSET_EXTENSION_LENGTH 0x4
#define FU_STRUCT_IGSC_FWDATA_UPDATE_EXT_OFFSET_OEM_MANUF_DATA_VERSION 0x8
#define FU_STRUCT_IGSC_FWDATA_UPDATE_EXT_OFFSET_MAJOR_VCN 0xC
#define FU_STRUCT_IGSC_FWDATA_UPDATE_EXT_OFFSET_FLAGS 0xE
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_IGSC_FWDATA_UPDATE_EXT_SIZE 0x10
#endif

#ifndef __GI_SCANNER__
#endif
