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

#pragma once
#include <fu-input-stream.h>
/**
 * FuDellDockBaseType:
 */
typedef enum {
    /**
     * FU_DELL_DOCK_BASE_TYPE_UNKNOWN:
     */
    FU_DELL_DOCK_BASE_TYPE_UNKNOWN = 0x0,
    /**
     * FU_DELL_DOCK_BASE_TYPE_KESTREL:
     */
    FU_DELL_DOCK_BASE_TYPE_KESTREL = 0x07,
}  FuDellDockBaseType;
/**
 * FuDellKestrelEcCmd:
 */
typedef enum {
    /**
     * FU_DELL_KESTREL_EC_CMD_SET_DOCK_PKG:
     */
    FU_DELL_KESTREL_EC_CMD_SET_DOCK_PKG = 0x01,
    /**
     * FU_DELL_KESTREL_EC_CMD_GET_DOCK_INFO:
     */
    FU_DELL_KESTREL_EC_CMD_GET_DOCK_INFO = 0x02,
    /**
     * FU_DELL_KESTREL_EC_CMD_GET_DOCK_DATA:
     */
    FU_DELL_KESTREL_EC_CMD_GET_DOCK_DATA = 0x03,
    /**
     * FU_DELL_KESTREL_EC_CMD_GET_DOCK_TYPE:
     */
    FU_DELL_KESTREL_EC_CMD_GET_DOCK_TYPE = 0x05,
    /**
     * FU_DELL_KESTREL_EC_CMD_SET_MODIFY_LOCK:
     */
    FU_DELL_KESTREL_EC_CMD_SET_MODIFY_LOCK = 0x0a,
    /**
     * FU_DELL_KESTREL_EC_CMD_SET_FWUP_MODE:
     */
    FU_DELL_KESTREL_EC_CMD_SET_FWUP_MODE = 0x0b,
    /**
     * FU_DELL_KESTREL_EC_CMD_SET_PASSIVE:
     */
    FU_DELL_KESTREL_EC_CMD_SET_PASSIVE = 0x0d,
}  FuDellKestrelEcCmd;
/**
 * FuDellKestrelEcLocation:
 */
typedef enum {
    /**
     * FU_DELL_KESTREL_EC_LOCATION_BASE:
     */
    FU_DELL_KESTREL_EC_LOCATION_BASE = 0x00,
    /**
     * FU_DELL_KESTREL_EC_LOCATION_MODULE:
     */
    FU_DELL_KESTREL_EC_LOCATION_MODULE,
}  FuDellKestrelEcLocation;
/**
 * FuDellKestrelEcDevType:
 */
typedef enum {
    /**
     * FU_DELL_KESTREL_EC_DEV_TYPE_MAIN_EC:
     */
    FU_DELL_KESTREL_EC_DEV_TYPE_MAIN_EC = 0x00,
    /**
     * FU_DELL_KESTREL_EC_DEV_TYPE_PD:
     */
    FU_DELL_KESTREL_EC_DEV_TYPE_PD,
    /**
     * FU_DELL_KESTREL_EC_DEV_TYPE_USBHUB:
     */
    FU_DELL_KESTREL_EC_DEV_TYPE_USBHUB,
    /**
     * FU_DELL_KESTREL_EC_DEV_TYPE_MST:
     */
    FU_DELL_KESTREL_EC_DEV_TYPE_MST,
    /**
     * FU_DELL_KESTREL_EC_DEV_TYPE_TBT:
     */
    FU_DELL_KESTREL_EC_DEV_TYPE_TBT,
    /**
     * FU_DELL_KESTREL_EC_DEV_TYPE_QI:
     */
    FU_DELL_KESTREL_EC_DEV_TYPE_QI,
    /**
     * FU_DELL_KESTREL_EC_DEV_TYPE_DP_MUX:
     */
    FU_DELL_KESTREL_EC_DEV_TYPE_DP_MUX,
    /**
     * FU_DELL_KESTREL_EC_DEV_TYPE_LAN:
     */
    FU_DELL_KESTREL_EC_DEV_TYPE_LAN,
    /**
     * FU_DELL_KESTREL_EC_DEV_TYPE_FAN:
     */
    FU_DELL_KESTREL_EC_DEV_TYPE_FAN,
    /**
     * FU_DELL_KESTREL_EC_DEV_TYPE_RMM:
     */
    FU_DELL_KESTREL_EC_DEV_TYPE_RMM,
    /**
     * FU_DELL_KESTREL_EC_DEV_TYPE_WTPD:
     */
    FU_DELL_KESTREL_EC_DEV_TYPE_WTPD,
}  FuDellKestrelEcDevType;
/**
 * FuDellKestrelEcDevSubtype:
 */
typedef enum {
    /**
     * FU_DELL_KESTREL_EC_DEV_SUBTYPE_RTS0:
     */
    FU_DELL_KESTREL_EC_DEV_SUBTYPE_RTS0 = 0x00,
    /**
     * FU_DELL_KESTREL_EC_DEV_SUBTYPE_RTS5:
     */
    FU_DELL_KESTREL_EC_DEV_SUBTYPE_RTS5 = 0x01,
    /**
     * FU_DELL_KESTREL_EC_DEV_SUBTYPE_TR:
     */
    FU_DELL_KESTREL_EC_DEV_SUBTYPE_TR = 0x00,
    /**
     * FU_DELL_KESTREL_EC_DEV_SUBTYPE_GR:
     */
    FU_DELL_KESTREL_EC_DEV_SUBTYPE_GR = 0x01,
    /**
     * FU_DELL_KESTREL_EC_DEV_SUBTYPE_BR:
     */
    FU_DELL_KESTREL_EC_DEV_SUBTYPE_BR = 0x02,
    /**
     * FU_DELL_KESTREL_EC_DEV_SUBTYPE_VMM8:
     */
    FU_DELL_KESTREL_EC_DEV_SUBTYPE_VMM8 = 0x00,
    /**
     * FU_DELL_KESTREL_EC_DEV_SUBTYPE_VMM9:
     */
    FU_DELL_KESTREL_EC_DEV_SUBTYPE_VMM9 = 0x01,
    /**
     * FU_DELL_KESTREL_EC_DEV_SUBTYPE_TI:
     */
    FU_DELL_KESTREL_EC_DEV_SUBTYPE_TI = 0x00,
}  FuDellKestrelEcDevSubtype;
/**
 * FuDellKestrelEcDevInstance:
 */
typedef enum {
    /**
     * FU_DELL_KESTREL_EC_DEV_INSTANCE_TI_UP5:
     */
    FU_DELL_KESTREL_EC_DEV_INSTANCE_TI_UP5 = 0,
    /**
     * FU_DELL_KESTREL_EC_DEV_INSTANCE_TI_UP15:
     */
    FU_DELL_KESTREL_EC_DEV_INSTANCE_TI_UP15,
    /**
     * FU_DELL_KESTREL_EC_DEV_INSTANCE_TI_UP17:
     */
    FU_DELL_KESTREL_EC_DEV_INSTANCE_TI_UP17,
}  FuDellKestrelEcDevInstance;
/**
 * FuDellKestrelDockSku:
 */
typedef enum {
    /**
     * FU_DELL_KESTREL_DOCK_SKU_DPALT:
     */
    FU_DELL_KESTREL_DOCK_SKU_DPALT = 0x01,
    /**
     * FU_DELL_KESTREL_DOCK_SKU_T4:
     */
    FU_DELL_KESTREL_DOCK_SKU_T4,
    /**
     * FU_DELL_KESTREL_DOCK_SKU_T5:
     */
    FU_DELL_KESTREL_DOCK_SKU_T5,
}  FuDellKestrelDockSku;
/**
 * FuDellKestrelDockDataChunkSupportBitmap:
 */
typedef enum {
    /**
     * FU_DELL_KESTREL_DOCK_DATA_CHUNK_SUPPORT_BITMAP_EC:
     */
    FU_DELL_KESTREL_DOCK_DATA_CHUNK_SUPPORT_BITMAP_EC = 1 << 0,
    /**
     * FU_DELL_KESTREL_DOCK_DATA_CHUNK_SUPPORT_BITMAP_PD:
     */
    FU_DELL_KESTREL_DOCK_DATA_CHUNK_SUPPORT_BITMAP_PD = 1 << 1,
} G_GNUC_FLAG_ENUM FuDellKestrelDockDataChunkSupportBitmap;
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructDellKestrelEcDatabytes;

FuStructDellKestrelEcDatabytes *fu_struct_dell_kestrel_ec_databytes_ref(FuStructDellKestrelEcDatabytes *st) G_GNUC_NON_NULL(1);
void fu_struct_dell_kestrel_ec_databytes_unref(FuStructDellKestrelEcDatabytes *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructDellKestrelEcDatabytes, fu_struct_dell_kestrel_ec_databytes_unref)
FuStructDellKestrelEcDatabytes *fu_struct_dell_kestrel_ec_databytes_new(void) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_dell_kestrel_ec_databytes_set_cmd(FuStructDellKestrelEcDatabytes *st, FuDellKestrelEcCmd value) G_GNUC_NON_NULL(1);
void fu_struct_dell_kestrel_ec_databytes_set_data_sz(FuStructDellKestrelEcDatabytes *st, guint8 value) G_GNUC_NON_NULL(1);
gboolean fu_struct_dell_kestrel_ec_databytes_set_data(FuStructDellKestrelEcDatabytes *st, const guint8 *buf, gsize bufsz, GError **error) G_GNUC_NON_NULL(1, 2) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_DELL_KESTREL_EC_DATABYTES_OFFSET_CMD 0x0
#define FU_STRUCT_DELL_KESTREL_EC_DATABYTES_OFFSET_DATA_SZ 0x1
#define FU_STRUCT_DELL_KESTREL_EC_DATABYTES_OFFSET_DATA 0x2
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_DELL_KESTREL_EC_DATABYTES_SIZE_DATA 0x7E
#define FU_STRUCT_DELL_KESTREL_EC_DATABYTES_N_ELEMENTS_DATA 126
#define FU_STRUCT_DELL_KESTREL_EC_DATABYTES_SIZE 0x80
#endif

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

FuStructDellKestrelDockData *fu_struct_dell_kestrel_dock_data_ref(FuStructDellKestrelDockData *st) G_GNUC_NON_NULL(1);
void fu_struct_dell_kestrel_dock_data_unref(FuStructDellKestrelDockData *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructDellKestrelDockData, fu_struct_dell_kestrel_dock_data_unref)
FuStructDellKestrelDockData *fu_struct_dell_kestrel_dock_data_new(void) G_GNUC_WARN_UNUSED_RESULT;
FuStructDellKestrelDockData *fu_struct_dell_kestrel_dock_data_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_dell_kestrel_dock_data_get_dock_configuration(const FuStructDellKestrelDockData *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_dell_kestrel_dock_data_get_dock_type(const FuStructDellKestrelDockData *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_dell_kestrel_dock_data_get_module_type(const FuStructDellKestrelDockData *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_dell_kestrel_dock_data_get_board_id(const FuStructDellKestrelDockData *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_dell_kestrel_dock_data_get_dock_firmware_pkg_ver(const FuStructDellKestrelDockData *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint64 fu_struct_dell_kestrel_dock_data_get_module_serial(const FuStructDellKestrelDockData *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
gchar *fu_struct_dell_kestrel_dock_data_get_service_tag(const FuStructDellKestrelDockData *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
gchar *fu_struct_dell_kestrel_dock_data_get_marketing_name(const FuStructDellKestrelDockData *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_dell_kestrel_dock_data_get_chunk_support(const FuStructDellKestrelDockData *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_dell_kestrel_dock_data_get_dock_status(const FuStructDellKestrelDockData *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
const guint8 *fu_struct_dell_kestrel_dock_data_get_dock_mac_addr(const FuStructDellKestrelDockData *st, gsize *bufsz) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_dell_kestrel_dock_data_get_eppid(const FuStructDellKestrelDockData *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_dell_kestrel_dock_data_set_dock_configuration(FuStructDellKestrelDockData *st, guint8 value) G_GNUC_NON_NULL(1);
void fu_struct_dell_kestrel_dock_data_set_dock_type(FuStructDellKestrelDockData *st, guint8 value) G_GNUC_NON_NULL(1);
void fu_struct_dell_kestrel_dock_data_set_module_type(FuStructDellKestrelDockData *st, guint16 value) G_GNUC_NON_NULL(1);
void fu_struct_dell_kestrel_dock_data_set_board_id(FuStructDellKestrelDockData *st, guint16 value) G_GNUC_NON_NULL(1);
void fu_struct_dell_kestrel_dock_data_set_dock_firmware_pkg_ver(FuStructDellKestrelDockData *st, guint32 value) G_GNUC_NON_NULL(1);
void fu_struct_dell_kestrel_dock_data_set_module_serial(FuStructDellKestrelDockData *st, guint64 value) G_GNUC_NON_NULL(1);
gboolean fu_struct_dell_kestrel_dock_data_set_service_tag(FuStructDellKestrelDockData *st, const gchar *value, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
gboolean fu_struct_dell_kestrel_dock_data_set_marketing_name(FuStructDellKestrelDockData *st, const gchar *value, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_dell_kestrel_dock_data_set_chunk_support(FuStructDellKestrelDockData *st, guint8 value) G_GNUC_NON_NULL(1);
void fu_struct_dell_kestrel_dock_data_set_dock_status(FuStructDellKestrelDockData *st, guint32 value) G_GNUC_NON_NULL(1);
gboolean fu_struct_dell_kestrel_dock_data_set_dock_mac_addr(FuStructDellKestrelDockData *st, const guint8 *buf, gsize bufsz, GError **error) G_GNUC_NON_NULL(1, 2) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_dell_kestrel_dock_data_set_eppid(FuStructDellKestrelDockData *st, guint8 value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_DELL_KESTREL_DOCK_DATA_OFFSET_DOCK_CONFIGURATION 0x0
#define FU_STRUCT_DELL_KESTREL_DOCK_DATA_OFFSET_DOCK_TYPE 0x1
#define FU_STRUCT_DELL_KESTREL_DOCK_DATA_OFFSET_MODULE_TYPE 0x4
#define FU_STRUCT_DELL_KESTREL_DOCK_DATA_OFFSET_BOARD_ID 0x6
#define FU_STRUCT_DELL_KESTREL_DOCK_DATA_OFFSET_DOCK_FIRMWARE_PKG_VER 0xC
#define FU_STRUCT_DELL_KESTREL_DOCK_DATA_OFFSET_MODULE_SERIAL 0x10
#define FU_STRUCT_DELL_KESTREL_DOCK_DATA_OFFSET_SERVICE_TAG 0x20
#define FU_STRUCT_DELL_KESTREL_DOCK_DATA_OFFSET_MARKETING_NAME 0x27
#define FU_STRUCT_DELL_KESTREL_DOCK_DATA_OFFSET_CHUNK_SUPPORT 0x53
#define FU_STRUCT_DELL_KESTREL_DOCK_DATA_OFFSET_DOCK_STATUS 0x54
#define FU_STRUCT_DELL_KESTREL_DOCK_DATA_OFFSET_DOCK_MAC_ADDR 0x5C
#define FU_STRUCT_DELL_KESTREL_DOCK_DATA_OFFSET_EPPID 0x74
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_DELL_KESTREL_DOCK_DATA_SIZE_SERVICE_TAG 0x7
#define FU_STRUCT_DELL_KESTREL_DOCK_DATA_N_ELEMENTS_SERVICE_TAG 7
#define FU_STRUCT_DELL_KESTREL_DOCK_DATA_SIZE_MARKETING_NAME 0x20
#define FU_STRUCT_DELL_KESTREL_DOCK_DATA_N_ELEMENTS_MARKETING_NAME 32
#define FU_STRUCT_DELL_KESTREL_DOCK_DATA_SIZE_DOCK_MAC_ADDR 0x6
#define FU_STRUCT_DELL_KESTREL_DOCK_DATA_N_ELEMENTS_DOCK_MAC_ADDR 6
#define FU_STRUCT_DELL_KESTREL_DOCK_DATA_SIZE 0xBF
#endif

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

FuStructDellKestrelPackageFwVersions *fu_struct_dell_kestrel_package_fw_versions_ref(FuStructDellKestrelPackageFwVersions *st) G_GNUC_NON_NULL(1);
void fu_struct_dell_kestrel_package_fw_versions_unref(FuStructDellKestrelPackageFwVersions *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructDellKestrelPackageFwVersions, fu_struct_dell_kestrel_package_fw_versions_unref)

#ifndef __GI_SCANNER__
#define FU_STRUCT_DELL_KESTREL_PACKAGE_FW_VERSIONS_OFFSET_PKG_VER 0x0
#define FU_STRUCT_DELL_KESTREL_PACKAGE_FW_VERSIONS_OFFSET_EC_VER 0x4
#define FU_STRUCT_DELL_KESTREL_PACKAGE_FW_VERSIONS_OFFSET_MST_VER 0x8
#define FU_STRUCT_DELL_KESTREL_PACKAGE_FW_VERSIONS_OFFSET_RTS0_G2_VER 0xC
#define FU_STRUCT_DELL_KESTREL_PACKAGE_FW_VERSIONS_OFFSET_RTS5_G2_VER 0x10
#define FU_STRUCT_DELL_KESTREL_PACKAGE_FW_VERSIONS_OFFSET_RTS0_G1_VER 0x14
#define FU_STRUCT_DELL_KESTREL_PACKAGE_FW_VERSIONS_OFFSET_TBT_VER 0x18
#define FU_STRUCT_DELL_KESTREL_PACKAGE_FW_VERSIONS_OFFSET_PD_UP5_VER 0x1C
#define FU_STRUCT_DELL_KESTREL_PACKAGE_FW_VERSIONS_OFFSET_PD_UP15_VER 0x20
#define FU_STRUCT_DELL_KESTREL_PACKAGE_FW_VERSIONS_OFFSET_PD_UP17_VER 0x24
#define FU_STRUCT_DELL_KESTREL_PACKAGE_FW_VERSIONS_OFFSET_DPMUX_VER 0x28
#define FU_STRUCT_DELL_KESTREL_PACKAGE_FW_VERSIONS_OFFSET_RMM_VER 0x2C
#define FU_STRUCT_DELL_KESTREL_PACKAGE_FW_VERSIONS_OFFSET_LAN_VER 0x30
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_DELL_KESTREL_PACKAGE_FW_VERSIONS_SIZE 0x40
#endif

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

FuStructDellKestrelDockInfoEcAddrMap *fu_struct_dell_kestrel_dock_info_ec_addr_map_ref(FuStructDellKestrelDockInfoEcAddrMap *st) G_GNUC_NON_NULL(1);
void fu_struct_dell_kestrel_dock_info_ec_addr_map_unref(FuStructDellKestrelDockInfoEcAddrMap *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructDellKestrelDockInfoEcAddrMap, fu_struct_dell_kestrel_dock_info_ec_addr_map_unref)
guint8 fu_struct_dell_kestrel_dock_info_ec_addr_map_get_location(const FuStructDellKestrelDockInfoEcAddrMap *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_dell_kestrel_dock_info_ec_addr_map_get_device_type(const FuStructDellKestrelDockInfoEcAddrMap *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_dell_kestrel_dock_info_ec_addr_map_get_subtype(const FuStructDellKestrelDockInfoEcAddrMap *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_dell_kestrel_dock_info_ec_addr_map_get_arg(const FuStructDellKestrelDockInfoEcAddrMap *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_dell_kestrel_dock_info_ec_addr_map_get_instance(const FuStructDellKestrelDockInfoEcAddrMap *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_DELL_KESTREL_DOCK_INFO_EC_ADDR_MAP_OFFSET_LOCATION 0x0
#define FU_STRUCT_DELL_KESTREL_DOCK_INFO_EC_ADDR_MAP_OFFSET_DEVICE_TYPE 0x1
#define FU_STRUCT_DELL_KESTREL_DOCK_INFO_EC_ADDR_MAP_OFFSET_SUBTYPE 0x2
#define FU_STRUCT_DELL_KESTREL_DOCK_INFO_EC_ADDR_MAP_OFFSET_ARG 0x3
#define FU_STRUCT_DELL_KESTREL_DOCK_INFO_EC_ADDR_MAP_OFFSET_INSTANCE 0x4
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_DELL_KESTREL_DOCK_INFO_EC_ADDR_MAP_SIZE 0x5
#endif

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

FuStructDellKestrelDockInfoEcQueryEntry *fu_struct_dell_kestrel_dock_info_ec_query_entry_ref(FuStructDellKestrelDockInfoEcQueryEntry *st) G_GNUC_NON_NULL(1);
void fu_struct_dell_kestrel_dock_info_ec_query_entry_unref(FuStructDellKestrelDockInfoEcQueryEntry *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructDellKestrelDockInfoEcQueryEntry, fu_struct_dell_kestrel_dock_info_ec_query_entry_unref)
FuStructDellKestrelDockInfoEcAddrMap *fu_struct_dell_kestrel_dock_info_ec_query_entry_get_ec_addr_map(const FuStructDellKestrelDockInfoEcQueryEntry *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_dell_kestrel_dock_info_ec_query_entry_get_version_32(const FuStructDellKestrelDockInfoEcQueryEntry *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_DELL_KESTREL_DOCK_INFO_EC_QUERY_ENTRY_OFFSET_EC_ADDR_MAP 0x0
#define FU_STRUCT_DELL_KESTREL_DOCK_INFO_EC_QUERY_ENTRY_OFFSET_VERSION_32 0x5
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_DELL_KESTREL_DOCK_INFO_EC_QUERY_ENTRY_SIZE 0x9
#endif

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

FuStructDellKestrelDockInfoHeader *fu_struct_dell_kestrel_dock_info_header_ref(FuStructDellKestrelDockInfoHeader *st) G_GNUC_NON_NULL(1);
void fu_struct_dell_kestrel_dock_info_header_unref(FuStructDellKestrelDockInfoHeader *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructDellKestrelDockInfoHeader, fu_struct_dell_kestrel_dock_info_header_unref)
guint8 fu_struct_dell_kestrel_dock_info_header_get_total_devices(const FuStructDellKestrelDockInfoHeader *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_dell_kestrel_dock_info_header_get_first_index(const FuStructDellKestrelDockInfoHeader *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_dell_kestrel_dock_info_header_get_last_index(const FuStructDellKestrelDockInfoHeader *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_DELL_KESTREL_DOCK_INFO_HEADER_OFFSET_TOTAL_DEVICES 0x0
#define FU_STRUCT_DELL_KESTREL_DOCK_INFO_HEADER_OFFSET_FIRST_INDEX 0x1
#define FU_STRUCT_DELL_KESTREL_DOCK_INFO_HEADER_OFFSET_LAST_INDEX 0x2
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_DELL_KESTREL_DOCK_INFO_HEADER_SIZE 0x3
#endif

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

FuStructDellKestrelDockInfo *fu_struct_dell_kestrel_dock_info_ref(FuStructDellKestrelDockInfo *st) G_GNUC_NON_NULL(1);
void fu_struct_dell_kestrel_dock_info_unref(FuStructDellKestrelDockInfo *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructDellKestrelDockInfo, fu_struct_dell_kestrel_dock_info_unref)
FuStructDellKestrelDockInfo *fu_struct_dell_kestrel_dock_info_new(void) G_GNUC_WARN_UNUSED_RESULT;
FuStructDellKestrelDockInfo *fu_struct_dell_kestrel_dock_info_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuStructDellKestrelDockInfoHeader *fu_struct_dell_kestrel_dock_info_get_header(const FuStructDellKestrelDockInfo *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuStructDellKestrelDockInfoEcQueryEntry *fu_struct_dell_kestrel_dock_info_get_devices(const FuStructDellKestrelDockInfo *st, guint idx) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
gboolean
fu_struct_dell_kestrel_dock_info_set_header(FuStructDellKestrelDockInfo *st, const FuStructDellKestrelDockInfoHeader *st_donor, GError **error) G_GNUC_NON_NULL(1, 2) G_GNUC_WARN_UNUSED_RESULT;
gboolean
fu_struct_dell_kestrel_dock_info_set_devices(FuStructDellKestrelDockInfo *st, guint idx, const FuStructDellKestrelDockInfoEcQueryEntry *st_donor, GError **error) G_GNUC_NON_NULL(1, 3) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_DELL_KESTREL_DOCK_INFO_OFFSET_HEADER 0x0
#define FU_STRUCT_DELL_KESTREL_DOCK_INFO_OFFSET_DEVICES 0x3
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_DELL_KESTREL_DOCK_INFO_SIZE_DEVICES 0xB4
#define FU_STRUCT_DELL_KESTREL_DOCK_INFO_N_ELEMENTS_DEVICES 20
#define FU_STRUCT_DELL_KESTREL_DOCK_INFO_SIZE 0xB7
#endif

#ifndef __GI_SCANNER__
#endif
