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

#pragma once
#include <fu-input-stream.h>
/**
 * FuVliUsbhubFlashmapAddr:
 */
typedef enum {
    /**
     * FU_VLI_USBHUB_FLASHMAP_ADDR_HD1:
     */
    FU_VLI_USBHUB_FLASHMAP_ADDR_HD1 = 0x0,
    /**
     * FU_VLI_USBHUB_FLASHMAP_ADDR_HD1_BACKUP:
     */
    FU_VLI_USBHUB_FLASHMAP_ADDR_HD1_BACKUP = 0x1800,
    /**
     * FU_VLI_USBHUB_FLASHMAP_ADDR_HD2:
     */
    FU_VLI_USBHUB_FLASHMAP_ADDR_HD2 = 0x1000,
    /**
     * FU_VLI_USBHUB_FLASHMAP_ADDR_FW:
     */
    FU_VLI_USBHUB_FLASHMAP_ADDR_FW = 0x2000,
    /**
     * FU_VLI_USBHUB_FLASHMAP_ADDR_PD_LEGACY:
     */
    FU_VLI_USBHUB_FLASHMAP_ADDR_PD_LEGACY = 0x10000,
    /**
     * FU_VLI_USBHUB_FLASHMAP_ADDR_PD:
     */
    FU_VLI_USBHUB_FLASHMAP_ADDR_PD = 0x20000,
    /**
     * FU_VLI_USBHUB_FLASHMAP_ADDR_PD_BACKUP:
     */
    FU_VLI_USBHUB_FLASHMAP_ADDR_PD_BACKUP = 0x30000,
}  FuVliUsbhubFlashmapAddr;
/**
 * FuVliPdRegisterAddress:
 */
typedef enum {
    /**
     * FU_VLI_PD_REGISTER_ADDRESS_GPIO_CONTROL_A:
     */
    FU_VLI_PD_REGISTER_ADDRESS_GPIO_CONTROL_A = 0x0003,
    /**
     * FU_VLI_PD_REGISTER_ADDRESS_PROJ_LEGACY:
     */
    FU_VLI_PD_REGISTER_ADDRESS_PROJ_LEGACY = 0x0018,
    /**
     * FU_VLI_PD_REGISTER_ADDRESS_PROJ_ID_HIGH:
     */
    FU_VLI_PD_REGISTER_ADDRESS_PROJ_ID_HIGH = 0x009C,
    /**
     * FU_VLI_PD_REGISTER_ADDRESS_PROJ_ID_LOW:
     */
    FU_VLI_PD_REGISTER_ADDRESS_PROJ_ID_LOW = 0x009D,
}  FuVliPdRegisterAddress;
/**
 * FuVliPdDeviceSpiCmd:
 */
typedef enum {
    /**
     * FU_VLI_PD_DEVICE_SPI_CMD_READ_STATUS:
     */
    FU_VLI_PD_DEVICE_SPI_CMD_READ_STATUS = 0xC2,
    /**
     * FU_VLI_PD_DEVICE_SPI_CMD_READ_DATA:
     */
    FU_VLI_PD_DEVICE_SPI_CMD_READ_DATA = 0xC4,
    /**
     * FU_VLI_PD_DEVICE_SPI_CMD_CHIP_ERASE:
     */
    FU_VLI_PD_DEVICE_SPI_CMD_CHIP_ERASE = 0xD1,
    /**
     * FU_VLI_PD_DEVICE_SPI_CMD_SECTOR_ERASE:
     */
    FU_VLI_PD_DEVICE_SPI_CMD_SECTOR_ERASE = 0xD2,
    /**
     * FU_VLI_PD_DEVICE_SPI_CMD_WRITE_ENABLE:
     */
    FU_VLI_PD_DEVICE_SPI_CMD_WRITE_ENABLE = 0xD4,
    /**
     * FU_VLI_PD_DEVICE_SPI_CMD_WRITE_STATUS:
     */
    FU_VLI_PD_DEVICE_SPI_CMD_WRITE_STATUS = 0xD8,
    /**
     * FU_VLI_PD_DEVICE_SPI_CMD_WRITE_DATA:
     */
    FU_VLI_PD_DEVICE_SPI_CMD_WRITE_DATA = 0xDC,
}  FuVliPdDeviceSpiCmd;
/**
 * FuVliPdDeviceCmd:
 */
typedef enum {
    /**
     * FU_VLI_PD_DEVICE_CMD_ACCESS_REGISTER:
     */
    FU_VLI_PD_DEVICE_CMD_ACCESS_REGISTER = 0xE0,
    /**
     * FU_VLI_PD_DEVICE_CMD_GET_FW_VERSION:
     */
    FU_VLI_PD_DEVICE_CMD_GET_FW_VERSION = 0xE2,
}  FuVliPdDeviceCmd;
/**
 * FuVliDeviceKind:
 */
typedef enum {
    /**
     * FU_VLI_DEVICE_KIND_UNKNOWN:
     */
    FU_VLI_DEVICE_KIND_UNKNOWN = 0x0,
    /**
     * FU_VLI_DEVICE_KIND_VL100:
     */
    FU_VLI_DEVICE_KIND_VL100 = 0x0100,
    /**
     * FU_VLI_DEVICE_KIND_VL101:
     */
    FU_VLI_DEVICE_KIND_VL101 = 0x0101,
    /**
     * FU_VLI_DEVICE_KIND_VL102:
     */
    FU_VLI_DEVICE_KIND_VL102 = 0x0102,
    /**
     * FU_VLI_DEVICE_KIND_VL103:
     */
    FU_VLI_DEVICE_KIND_VL103 = 0x0103,
    /**
     * FU_VLI_DEVICE_KIND_VL104:
     */
    FU_VLI_DEVICE_KIND_VL104 = 0x0104,
    /**
     * FU_VLI_DEVICE_KIND_VL105:
     */
    FU_VLI_DEVICE_KIND_VL105 = 0x0105,
    /**
     * FU_VLI_DEVICE_KIND_VL106:
     */
    FU_VLI_DEVICE_KIND_VL106 = 0x0106,
    /**
     * FU_VLI_DEVICE_KIND_VL107:
     */
    FU_VLI_DEVICE_KIND_VL107 = 0x0107,
    /**
     * FU_VLI_DEVICE_KIND_VL108:
     */
    FU_VLI_DEVICE_KIND_VL108 = 0x0108,
    /**
     * FU_VLI_DEVICE_KIND_VL109:
     */
    FU_VLI_DEVICE_KIND_VL109 = 0x0109,
    /**
     * FU_VLI_DEVICE_KIND_VL120:
     */
    FU_VLI_DEVICE_KIND_VL120 = 0x0120,
    /**
     * FU_VLI_DEVICE_KIND_VL122:
     */
    FU_VLI_DEVICE_KIND_VL122 = 0x0122,
    /**
     * FU_VLI_DEVICE_KIND_VL210:
     */
    FU_VLI_DEVICE_KIND_VL210 = 0x0210,
    /**
     * FU_VLI_DEVICE_KIND_VL211:
     */
    FU_VLI_DEVICE_KIND_VL211 = 0x0211,
    /**
     * FU_VLI_DEVICE_KIND_VL212:
     */
    FU_VLI_DEVICE_KIND_VL212 = 0x0212,
    /**
     * FU_VLI_DEVICE_KIND_VL650:
     */
    FU_VLI_DEVICE_KIND_VL650 = 0x0650,
    /**
     * FU_VLI_DEVICE_KIND_VL810:
     */
    FU_VLI_DEVICE_KIND_VL810 = 0x0810,
    /**
     * FU_VLI_DEVICE_KIND_VL811:
     */
    FU_VLI_DEVICE_KIND_VL811 = 0x0811,
    /**
     * FU_VLI_DEVICE_KIND_VL811PB0:
     */
    FU_VLI_DEVICE_KIND_VL811PB0 = 0x8110,
    /**
     * FU_VLI_DEVICE_KIND_VL811PB3:
     */
    FU_VLI_DEVICE_KIND_VL811PB3 = 0x8113,
    /**
     * FU_VLI_DEVICE_KIND_VL812B0:
     */
    FU_VLI_DEVICE_KIND_VL812B0 = 0xa812,
    /**
     * FU_VLI_DEVICE_KIND_VL812B3:
     */
    FU_VLI_DEVICE_KIND_VL812B3 = 0xb812,
    /**
     * FU_VLI_DEVICE_KIND_VL812Q4S:
     */
    FU_VLI_DEVICE_KIND_VL812Q4S = 0xc812,
    /**
     * FU_VLI_DEVICE_KIND_VL813:
     */
    FU_VLI_DEVICE_KIND_VL813 = 0x0813,
    /**
     * FU_VLI_DEVICE_KIND_VL815:
     */
    FU_VLI_DEVICE_KIND_VL815 = 0x0815,
    /**
     * FU_VLI_DEVICE_KIND_VL817:
     */
    FU_VLI_DEVICE_KIND_VL817 = 0x0817,
    /**
     * FU_VLI_DEVICE_KIND_VL817S:
     */
    FU_VLI_DEVICE_KIND_VL817S = 0xa817,
    /**
     * FU_VLI_DEVICE_KIND_VL819Q7:
     *
     * guessed
     */
    FU_VLI_DEVICE_KIND_VL819Q7 = 0xa819,
    /**
     * FU_VLI_DEVICE_KIND_VL819Q8:
     *
     * guessed
     */
    FU_VLI_DEVICE_KIND_VL819Q8 = 0xb819,
    /**
     * FU_VLI_DEVICE_KIND_VL820Q7:
     */
    FU_VLI_DEVICE_KIND_VL820Q7 = 0xa820,
    /**
     * FU_VLI_DEVICE_KIND_VL820Q8:
     */
    FU_VLI_DEVICE_KIND_VL820Q8 = 0xb820,
    /**
     * FU_VLI_DEVICE_KIND_VL821Q7:
     *
     * guessed
     */
    FU_VLI_DEVICE_KIND_VL821Q7 = 0xa821,
    /**
     * FU_VLI_DEVICE_KIND_VL821Q8:
     *
     * guessed
     */
    FU_VLI_DEVICE_KIND_VL821Q8 = 0xb821,
    /**
     * FU_VLI_DEVICE_KIND_VL822Q5:
     *
     * guessed
     */
    FU_VLI_DEVICE_KIND_VL822Q5 = 0x0822,
    /**
     * FU_VLI_DEVICE_KIND_VL822Q7:
     *
     * guessed
     */
    FU_VLI_DEVICE_KIND_VL822Q7 = 0xa822,
    /**
     * FU_VLI_DEVICE_KIND_VL822Q8:
     *
     * guessed
     */
    FU_VLI_DEVICE_KIND_VL822Q8 = 0xb822,
    /**
     * FU_VLI_DEVICE_KIND_VL822T:
     *
     * guessed
     */
    FU_VLI_DEVICE_KIND_VL822T = 0xc822,
    /**
     * FU_VLI_DEVICE_KIND_VL822C0:
     */
    FU_VLI_DEVICE_KIND_VL822C0 = 0xd822,
    /**
     * FU_VLI_DEVICE_KIND_VL830:
     */
    FU_VLI_DEVICE_KIND_VL830 = 0x0830,
    /**
     * FU_VLI_DEVICE_KIND_VL832:
     */
    FU_VLI_DEVICE_KIND_VL832 = 0x0832,
    /**
     * FU_VLI_DEVICE_KIND_MSP430:
     *
     * guessed
     */
    FU_VLI_DEVICE_KIND_MSP430 = 0xf430,
    /**
     * FU_VLI_DEVICE_KIND_PS186:
     *
     * guessed
     */
    FU_VLI_DEVICE_KIND_PS186 = 0xf186,
    /**
     * FU_VLI_DEVICE_KIND_RTD21XX:
     *
     * guessed
     */
    FU_VLI_DEVICE_KIND_RTD21XX = 0xff00,
}  FuVliDeviceKind;
const gchar *fu_vli_device_kind_to_string(FuVliDeviceKind val) G_GNUC_CONST;
FuVliDeviceKind fu_vli_device_kind_from_string(const gchar *val) G_GNUC_CONST G_GNUC_NON_NULL(1);
/**
 * FuVliDeviceFwTag:
 */
typedef enum {
    /**
     * FU_VLI_DEVICE_FW_TAG_VL100A:
     */
    FU_VLI_DEVICE_FW_TAG_VL100A = 0x01,
    /**
     * FU_VLI_DEVICE_FW_TAG_VL100B:
     */
    FU_VLI_DEVICE_FW_TAG_VL100B = 0x02,
    /**
     * FU_VLI_DEVICE_FW_TAG_VL100C:
     */
    FU_VLI_DEVICE_FW_TAG_VL100C = 0x03,
    /**
     * FU_VLI_DEVICE_FW_TAG_VL101A:
     */
    FU_VLI_DEVICE_FW_TAG_VL101A = 0x04,
    /**
     * FU_VLI_DEVICE_FW_TAG_VL101B:
     */
    FU_VLI_DEVICE_FW_TAG_VL101B = 0x05,
    /**
     * FU_VLI_DEVICE_FW_TAG_VL101C:
     */
    FU_VLI_DEVICE_FW_TAG_VL101C = 0x06,
    /**
     * FU_VLI_DEVICE_FW_TAG_VL102A:
     */
    FU_VLI_DEVICE_FW_TAG_VL102A = 0x07,
    /**
     * FU_VLI_DEVICE_FW_TAG_VL102B:
     */
    FU_VLI_DEVICE_FW_TAG_VL102B = 0x08,
    /**
     * FU_VLI_DEVICE_FW_TAG_VL103A:
     */
    FU_VLI_DEVICE_FW_TAG_VL103A = 0x09,
    /**
     * FU_VLI_DEVICE_FW_TAG_VL103B:
     */
    FU_VLI_DEVICE_FW_TAG_VL103B = 0x0A,
    /**
     * FU_VLI_DEVICE_FW_TAG_VL104:
     */
    FU_VLI_DEVICE_FW_TAG_VL104 = 0x0B,
    /**
     * FU_VLI_DEVICE_FW_TAG_VL105:
     */
    FU_VLI_DEVICE_FW_TAG_VL105 = 0x0C,
    /**
     * FU_VLI_DEVICE_FW_TAG_VL106:
     */
    FU_VLI_DEVICE_FW_TAG_VL106 = 0x0D,
    /**
     * FU_VLI_DEVICE_FW_TAG_VL107:
     */
    FU_VLI_DEVICE_FW_TAG_VL107 = 0x0E,
    /**
     * FU_VLI_DEVICE_FW_TAG_VL108A:
     */
    FU_VLI_DEVICE_FW_TAG_VL108A = 0xA1,
    /**
     * FU_VLI_DEVICE_FW_TAG_VL108B:
     */
    FU_VLI_DEVICE_FW_TAG_VL108B = 0xB1,
    /**
     * FU_VLI_DEVICE_FW_TAG_VL109A:
     */
    FU_VLI_DEVICE_FW_TAG_VL109A = 0xA2,
    /**
     * FU_VLI_DEVICE_FW_TAG_VL109B:
     */
    FU_VLI_DEVICE_FW_TAG_VL109B = 0xB2,
}  FuVliDeviceFwTag;
/**
 * FuVliUsbhubRtd21xxIspStatus:
 */
typedef enum {
    /**
     * FU_VLI_USBHUB_RTD21XX_ISP_STATUS_BUSY:
     *
     * host must wait for device
     */
    FU_VLI_USBHUB_RTD21XX_ISP_STATUS_BUSY = 0xBB,
    /**
     * FU_VLI_USBHUB_RTD21XX_ISP_STATUS_IDLE_SUCCESS:
     *
     * previous command was OK
     */
    FU_VLI_USBHUB_RTD21XX_ISP_STATUS_IDLE_SUCCESS = 0x11,
    /**
     * FU_VLI_USBHUB_RTD21XX_ISP_STATUS_IDLE_FAILURE:
     *
     * previous command failed
     */
    FU_VLI_USBHUB_RTD21XX_ISP_STATUS_IDLE_FAILURE = 0x12,
}  FuVliUsbhubRtd21xxIspStatus;
/**
 * FuVliUsbhubRtd21xxIspCmd:
 */
typedef enum {
    /**
     * FU_VLI_USBHUB_RTD21XX_ISP_CMD_NONE:
     */
    FU_VLI_USBHUB_RTD21XX_ISP_CMD_NONE,
    /**
     * FU_VLI_USBHUB_RTD21XX_ISP_CMD_ENTER_FW_UPDATE:
     */
    FU_VLI_USBHUB_RTD21XX_ISP_CMD_ENTER_FW_UPDATE,
    /**
     * FU_VLI_USBHUB_RTD21XX_ISP_CMD_GET_PROJECT_ID_ADDR:
     */
    FU_VLI_USBHUB_RTD21XX_ISP_CMD_GET_PROJECT_ID_ADDR,
    /**
     * FU_VLI_USBHUB_RTD21XX_ISP_CMD_SYNC_IDENTIFY_CODE:
     */
    FU_VLI_USBHUB_RTD21XX_ISP_CMD_SYNC_IDENTIFY_CODE,
    /**
     * FU_VLI_USBHUB_RTD21XX_ISP_CMD_GET_FW_INFO:
     */
    FU_VLI_USBHUB_RTD21XX_ISP_CMD_GET_FW_INFO,
    /**
     * FU_VLI_USBHUB_RTD21XX_ISP_CMD_FW_UPDATE_START:
     */
    FU_VLI_USBHUB_RTD21XX_ISP_CMD_FW_UPDATE_START,
    /**
     * FU_VLI_USBHUB_RTD21XX_ISP_CMD_FW_UPDATE_ISP_DONE:
     */
    FU_VLI_USBHUB_RTD21XX_ISP_CMD_FW_UPDATE_ISP_DONE,
    /**
     * FU_VLI_USBHUB_RTD21XX_ISP_CMD_FW_UPDATE_EXIT:
     */
    FU_VLI_USBHUB_RTD21XX_ISP_CMD_FW_UPDATE_EXIT,
    /**
     * FU_VLI_USBHUB_RTD21XX_ISP_CMD_FW_UPDATE_RESET:
     */
    FU_VLI_USBHUB_RTD21XX_ISP_CMD_FW_UPDATE_RESET,
}  FuVliUsbhubRtd21xxIspCmd;
#define FU_VLI_USBHUB_RTD21XX_ISP_CMD_LAST 9
/**
 * FuVliUsbhubI2cStatus:
 */
typedef enum {
    /**
     * FU_VLI_USBHUB_I2C_STATUS_OK:
     */
    FU_VLI_USBHUB_I2C_STATUS_OK = 0x00,
    /**
     * FU_VLI_USBHUB_I2C_STATUS_HEADER:
     */
    FU_VLI_USBHUB_I2C_STATUS_HEADER = 0x51,
    /**
     * FU_VLI_USBHUB_I2C_STATUS_COMMAND:
     */
    FU_VLI_USBHUB_I2C_STATUS_COMMAND = 0x52,
    /**
     * FU_VLI_USBHUB_I2C_STATUS_ADDRESS:
     */
    FU_VLI_USBHUB_I2C_STATUS_ADDRESS = 0x53,
    /**
     * FU_VLI_USBHUB_I2C_STATUS_PACKETSIZE:
     */
    FU_VLI_USBHUB_I2C_STATUS_PACKETSIZE = 0x54,
    /**
     * FU_VLI_USBHUB_I2C_STATUS_CHECKSUM:
     */
    FU_VLI_USBHUB_I2C_STATUS_CHECKSUM = 0x55,
}  FuVliUsbhubI2cStatus;
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructVliPdHdr;

FuStructVliPdHdr *fu_struct_vli_pd_hdr_ref(FuStructVliPdHdr *st) G_GNUC_NON_NULL(1);
void fu_struct_vli_pd_hdr_unref(FuStructVliPdHdr *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructVliPdHdr, fu_struct_vli_pd_hdr_unref)
FuStructVliPdHdr *fu_struct_vli_pd_hdr_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuStructVliPdHdr *fu_struct_vli_pd_hdr_parse_stream(GInputStream *stream, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_vli_pd_hdr_get_fwver(const FuStructVliPdHdr *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_vli_pd_hdr_get_vid(const FuStructVliPdHdr *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_vli_pd_hdr_get_pid(const FuStructVliPdHdr *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_VLI_PD_HDR_OFFSET_FWVER 0x0
#define FU_STRUCT_VLI_PD_HDR_OFFSET_VID 0x4
#define FU_STRUCT_VLI_PD_HDR_OFFSET_PID 0x6
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_VLI_PD_HDR_SIZE 0x8
#endif

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

FuStructVliUsbhubHdr *fu_struct_vli_usbhub_hdr_ref(FuStructVliUsbhubHdr *st) G_GNUC_NON_NULL(1);
void fu_struct_vli_usbhub_hdr_unref(FuStructVliUsbhubHdr *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructVliUsbhubHdr, fu_struct_vli_usbhub_hdr_unref)
FuStructVliUsbhubHdr *fu_struct_vli_usbhub_hdr_new(void) G_GNUC_WARN_UNUSED_RESULT;
FuStructVliUsbhubHdr *fu_struct_vli_usbhub_hdr_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuStructVliUsbhubHdr *fu_struct_vli_usbhub_hdr_parse_stream(GInputStream *stream, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
gchar *fu_struct_vli_usbhub_hdr_to_string(const FuStructVliUsbhubHdr *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_vli_usbhub_hdr_get_dev_id(const FuStructVliUsbhubHdr *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_vli_usbhub_hdr_get_strapping1(const FuStructVliUsbhubHdr *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_vli_usbhub_hdr_get_strapping2(const FuStructVliUsbhubHdr *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_vli_usbhub_hdr_get_usb3_fw_addr(const FuStructVliUsbhubHdr *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_vli_usbhub_hdr_get_usb3_fw_sz(const FuStructVliUsbhubHdr *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_vli_usbhub_hdr_get_usb2_fw_addr(const FuStructVliUsbhubHdr *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_vli_usbhub_hdr_get_usb2_fw_sz(const FuStructVliUsbhubHdr *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_vli_usbhub_hdr_get_usb3_fw_addr_high(const FuStructVliUsbhubHdr *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_vli_usbhub_hdr_get_usb3_fw_sz_high(const FuStructVliUsbhubHdr *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_vli_usbhub_hdr_get_usb2_fw_addr_high(const FuStructVliUsbhubHdr *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_vli_usbhub_hdr_get_inverse_pe41(const FuStructVliUsbhubHdr *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_vli_usbhub_hdr_get_prev_ptr(const FuStructVliUsbhubHdr *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_vli_usbhub_hdr_get_next_ptr(const FuStructVliUsbhubHdr *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_vli_usbhub_hdr_get_variant(const FuStructVliUsbhubHdr *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_vli_usbhub_hdr_get_checksum(const FuStructVliUsbhubHdr *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_vli_usbhub_hdr_set_dev_id(FuStructVliUsbhubHdr *st, guint16 value) G_GNUC_NON_NULL(1);
void fu_struct_vli_usbhub_hdr_set_strapping1(FuStructVliUsbhubHdr *st, guint8 value) G_GNUC_NON_NULL(1);
void fu_struct_vli_usbhub_hdr_set_strapping2(FuStructVliUsbhubHdr *st, guint8 value) G_GNUC_NON_NULL(1);
void fu_struct_vli_usbhub_hdr_set_usb3_fw_addr(FuStructVliUsbhubHdr *st, guint16 value) G_GNUC_NON_NULL(1);
void fu_struct_vli_usbhub_hdr_set_usb3_fw_sz(FuStructVliUsbhubHdr *st, guint16 value) G_GNUC_NON_NULL(1);
void fu_struct_vli_usbhub_hdr_set_usb2_fw_addr(FuStructVliUsbhubHdr *st, guint16 value) G_GNUC_NON_NULL(1);
void fu_struct_vli_usbhub_hdr_set_usb2_fw_sz(FuStructVliUsbhubHdr *st, guint16 value) G_GNUC_NON_NULL(1);
void fu_struct_vli_usbhub_hdr_set_usb3_fw_addr_high(FuStructVliUsbhubHdr *st, guint8 value) G_GNUC_NON_NULL(1);
void fu_struct_vli_usbhub_hdr_set_usb3_fw_sz_high(FuStructVliUsbhubHdr *st, guint8 value) G_GNUC_NON_NULL(1);
void fu_struct_vli_usbhub_hdr_set_usb2_fw_addr_high(FuStructVliUsbhubHdr *st, guint8 value) G_GNUC_NON_NULL(1);
void fu_struct_vli_usbhub_hdr_set_inverse_pe41(FuStructVliUsbhubHdr *st, guint8 value) G_GNUC_NON_NULL(1);
void fu_struct_vli_usbhub_hdr_set_prev_ptr(FuStructVliUsbhubHdr *st, guint8 value) G_GNUC_NON_NULL(1);
void fu_struct_vli_usbhub_hdr_set_next_ptr(FuStructVliUsbhubHdr *st, guint8 value) G_GNUC_NON_NULL(1);
void fu_struct_vli_usbhub_hdr_set_variant(FuStructVliUsbhubHdr *st, guint8 value) G_GNUC_NON_NULL(1);
void fu_struct_vli_usbhub_hdr_set_checksum(FuStructVliUsbhubHdr *st, guint8 value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_VLI_USBHUB_HDR_OFFSET_DEV_ID 0x0
#define FU_STRUCT_VLI_USBHUB_HDR_OFFSET_STRAPPING1 0x2
#define FU_STRUCT_VLI_USBHUB_HDR_OFFSET_STRAPPING2 0x3
#define FU_STRUCT_VLI_USBHUB_HDR_OFFSET_USB3_FW_ADDR 0x4
#define FU_STRUCT_VLI_USBHUB_HDR_OFFSET_USB3_FW_SZ 0x6
#define FU_STRUCT_VLI_USBHUB_HDR_OFFSET_USB2_FW_ADDR 0x8
#define FU_STRUCT_VLI_USBHUB_HDR_OFFSET_USB2_FW_SZ 0xA
#define FU_STRUCT_VLI_USBHUB_HDR_OFFSET_USB3_FW_ADDR_HIGH 0xC
#define FU_STRUCT_VLI_USBHUB_HDR_OFFSET_USB3_FW_SZ_HIGH 0xD
#define FU_STRUCT_VLI_USBHUB_HDR_OFFSET_USB2_FW_ADDR_HIGH 0x10
#define FU_STRUCT_VLI_USBHUB_HDR_OFFSET_INVERSE_PE41 0x1B
#define FU_STRUCT_VLI_USBHUB_HDR_OFFSET_PREV_PTR 0x1C
#define FU_STRUCT_VLI_USBHUB_HDR_OFFSET_NEXT_PTR 0x1D
#define FU_STRUCT_VLI_USBHUB_HDR_OFFSET_VARIANT 0x1E
#define FU_STRUCT_VLI_USBHUB_HDR_OFFSET_CHECKSUM 0x1F
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_VLI_USBHUB_HDR_SIZE 0x20
#endif

#ifndef __GI_SCANNER__
#endif
