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

#pragma once
#include <fu-input-stream.h>
/**
 * FuBnrDpBootArea:
 */
typedef enum {
    /**
     * FU_BNR_DP_BOOT_AREA_LOW:
     */
    FU_BNR_DP_BOOT_AREA_LOW,
    /**
     * FU_BNR_DP_BOOT_AREA_HIGH:
     */
    FU_BNR_DP_BOOT_AREA_HIGH,
}  FuBnrDpBootArea;
#define FU_BNR_DP_BOOT_AREA_LAST 2
const gchar *fu_bnr_dp_boot_area_to_string(FuBnrDpBootArea val) G_GNUC_CONST;
/**
 * FuBnrDpPayloadFlags:
 */
typedef enum {
    /**
     * FU_BNR_DP_PAYLOAD_FLAG_BOOT_AREA:
     */
    FU_BNR_DP_PAYLOAD_FLAG_BOOT_AREA = 1 << 0,
    /**
     * FU_BNR_DP_PAYLOAD_FLAG_CRC_ERROR:
     */
    FU_BNR_DP_PAYLOAD_FLAG_CRC_ERROR = 1 << 1,
} G_GNUC_FLAG_ENUM FuBnrDpPayloadFlags;
/**
 * FuBnrDpModuleNumber:
 *
 * FIXME: should be repr(u4) and AuxCommand struct should have `_reserve: u4` at front
 */
typedef enum {
    /**
     * FU_BNR_DP_MODULE_NUMBER_RECEIVER:
     */
    FU_BNR_DP_MODULE_NUMBER_RECEIVER = 0x00,
    /**
     * FU_BNR_DP_MODULE_NUMBER_DISPLAY:
     */
    FU_BNR_DP_MODULE_NUMBER_DISPLAY = 0x10,
    /**
     * FU_BNR_DP_MODULE_NUMBER_KEY_EXPANSION:
     */
    FU_BNR_DP_MODULE_NUMBER_KEY_EXPANSION = 0x20,
}  FuBnrDpModuleNumber;
const gchar *fu_bnr_dp_module_number_to_string(FuBnrDpModuleNumber val) G_GNUC_CONST;
/**
 * FuBnrDpOpcodes:
 */
typedef enum {
    /**
     * FU_BNR_DP_OPCODES_RESET:
     */
    FU_BNR_DP_OPCODES_RESET = 0x08,
    /**
     * FU_BNR_DP_OPCODES_FW_VERSION:
     */
    FU_BNR_DP_OPCODES_FW_VERSION = 0x10,
    /**
     * FU_BNR_DP_OPCODES_INFO_FLAGS:
     */
    FU_BNR_DP_OPCODES_INFO_FLAGS = 0x11,
    /**
     * FU_BNR_DP_OPCODES_FLASH_SAVE_HEADER_INFO:
     */
    FU_BNR_DP_OPCODES_FLASH_SAVE_HEADER_INFO = 0x6A,
    /**
     * FU_BNR_DP_OPCODES_FACTORY_DATA:
     */
    FU_BNR_DP_OPCODES_FACTORY_DATA = 0x80,
    /**
     * FU_BNR_DP_OPCODES_FLASH_USER:
     */
    FU_BNR_DP_OPCODES_FLASH_USER = 0xB0,
    /**
     * FU_BNR_DP_OPCODES_FLASH_SERVICE:
     */
    FU_BNR_DP_OPCODES_FLASH_SERVICE = 0xF0,
}  FuBnrDpOpcodes;
const gchar *fu_bnr_dp_opcodes_to_string(FuBnrDpOpcodes val) G_GNUC_CONST;
/**
 * FuBnrDpAuxError:
 */
typedef enum {
    /**
     * FU_BNR_DP_AUX_ERROR_IRQ_COLLISION:
     */
    FU_BNR_DP_AUX_ERROR_IRQ_COLLISION,
    /**
     * FU_BNR_DP_AUX_ERROR_UNKNOWN_COMMAND:
     */
    FU_BNR_DP_AUX_ERROR_UNKNOWN_COMMAND,
    /**
     * FU_BNR_DP_AUX_ERROR_TIMEOUT:
     */
    FU_BNR_DP_AUX_ERROR_TIMEOUT,
    /**
     * FU_BNR_DP_AUX_ERROR_BAD_PARAMETER:
     */
    FU_BNR_DP_AUX_ERROR_BAD_PARAMETER,
    /**
     * FU_BNR_DP_AUX_ERROR_DEVICE_BUSY:
     */
    FU_BNR_DP_AUX_ERROR_DEVICE_BUSY,
    /**
     * FU_BNR_DP_AUX_ERROR_DEVICE_FAILURE:
     */
    FU_BNR_DP_AUX_ERROR_DEVICE_FAILURE,
    /**
     * FU_BNR_DP_AUX_ERROR_DATA_FAILURE:
     */
    FU_BNR_DP_AUX_ERROR_DATA_FAILURE,
}  FuBnrDpAuxError;
#define FU_BNR_DP_AUX_ERROR_LAST 7
const gchar *fu_bnr_dp_aux_error_to_string(FuBnrDpAuxError val) G_GNUC_CONST;
/**
 * FuBnrDpAuxStatusFlags:
 *
 * FIXME: remove this enum, AuxStatus.error should be `error_number: u4`, u2 reserve followed by
 * error and busy bits
 */
typedef enum {
    /**
     * FU_BNR_DP_AUX_STATUS_FLAG_ERROR:
     */
    FU_BNR_DP_AUX_STATUS_FLAG_ERROR = 1 << 6,
    /**
     * FU_BNR_DP_AUX_STATUS_FLAG_BUSY:
     */
    FU_BNR_DP_AUX_STATUS_FLAG_BUSY = 1 << 7,
} G_GNUC_FLAG_ENUM FuBnrDpAuxStatusFlags;
/**
 * FuBnrDpChecksumInit:
 */
typedef enum {
    /**
     * FU_BNR_DP_CHECKSUM_INIT_RX:
     */
    FU_BNR_DP_CHECKSUM_INIT_RX = 0xAB,
    /**
     * FU_BNR_DP_CHECKSUM_INIT_TX:
     */
    FU_BNR_DP_CHECKSUM_INIT_TX = 0xBA,
}  FuBnrDpChecksumInit;
/**
 * FuBnrDpInfoFlags:
 */
typedef enum {
    /**
     * FU_BNR_DP_INFO_FLAG_BOOT_AREA:
     */
    FU_BNR_DP_INFO_FLAG_BOOT_AREA = 1 << 0,
    /**
     * FU_BNR_DP_INFO_FLAG_CRC_OK:
     */
    FU_BNR_DP_INFO_FLAG_CRC_OK = 1 << 1,
    /**
     * FU_BNR_DP_INFO_FLAG_PME_ENABLE:
     */
    FU_BNR_DP_INFO_FLAG_PME_ENABLE = 1 << 4,
    /**
     * FU_BNR_DP_INFO_FLAG_ICT_ENABLE:
     */
    FU_BNR_DP_INFO_FLAG_ICT_ENABLE = 1 << 5,
    /**
     * FU_BNR_DP_INFO_FLAG_REC_ENABLE:
     */
    FU_BNR_DP_INFO_FLAG_REC_ENABLE = 1 << 6,
} G_GNUC_FLAG_ENUM FuBnrDpInfoFlags;
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructBnrDpPayloadHeader;

FuStructBnrDpPayloadHeader *fu_struct_bnr_dp_payload_header_ref(FuStructBnrDpPayloadHeader *st) G_GNUC_NON_NULL(1);
void fu_struct_bnr_dp_payload_header_unref(FuStructBnrDpPayloadHeader *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructBnrDpPayloadHeader, fu_struct_bnr_dp_payload_header_unref)
FuStructBnrDpPayloadHeader *fu_struct_bnr_dp_payload_header_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
GBytes *fu_struct_bnr_dp_payload_header_to_bytes(const FuStructBnrDpPayloadHeader *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
gchar *fu_struct_bnr_dp_payload_header_get_version(const FuStructBnrDpPayloadHeader *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_bnr_dp_payload_header_get_counter(const FuStructBnrDpPayloadHeader *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuBnrDpPayloadFlags fu_struct_bnr_dp_payload_header_get_flags(const FuStructBnrDpPayloadHeader *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_bnr_dp_payload_header_get_crc(const FuStructBnrDpPayloadHeader *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
gboolean fu_struct_bnr_dp_payload_header_set_version(FuStructBnrDpPayloadHeader *st, const gchar *value, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_bnr_dp_payload_header_set_counter(FuStructBnrDpPayloadHeader *st, guint32 value) G_GNUC_NON_NULL(1);
void fu_struct_bnr_dp_payload_header_set_flags(FuStructBnrDpPayloadHeader *st, FuBnrDpPayloadFlags value) G_GNUC_NON_NULL(1);
void fu_struct_bnr_dp_payload_header_set_crc(FuStructBnrDpPayloadHeader *st, guint16 value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_BNR_DP_PAYLOAD_HEADER_OFFSET_ID 0x0
#define FU_STRUCT_BNR_DP_PAYLOAD_HEADER_OFFSET_VERSION 0x4
#define FU_STRUCT_BNR_DP_PAYLOAD_HEADER_OFFSET_COUNTER 0x8
#define FU_STRUCT_BNR_DP_PAYLOAD_HEADER_OFFSET_FLAGS 0xC
#define FU_STRUCT_BNR_DP_PAYLOAD_HEADER_OFFSET_CRC 0xE
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_BNR_DP_PAYLOAD_HEADER_SIZE_ID 0x4
#define FU_STRUCT_BNR_DP_PAYLOAD_HEADER_N_ELEMENTS_ID 4
#define FU_STRUCT_BNR_DP_PAYLOAD_HEADER_SIZE_VERSION 0x4
#define FU_STRUCT_BNR_DP_PAYLOAD_HEADER_N_ELEMENTS_VERSION 4
#define FU_STRUCT_BNR_DP_PAYLOAD_HEADER_SIZE 0x10
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_BNR_DP_PAYLOAD_HEADER_DEFAULT_ID "DP0R"
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructBnrDpAuxCommand;

FuStructBnrDpAuxCommand *fu_struct_bnr_dp_aux_command_ref(FuStructBnrDpAuxCommand *st) G_GNUC_NON_NULL(1);
void fu_struct_bnr_dp_aux_command_unref(FuStructBnrDpAuxCommand *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructBnrDpAuxCommand, fu_struct_bnr_dp_aux_command_unref)
FuStructBnrDpAuxCommand *fu_struct_bnr_dp_aux_command_new(void) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_bnr_dp_aux_command_set_module_number(FuStructBnrDpAuxCommand *st, FuBnrDpModuleNumber value) G_GNUC_NON_NULL(1);
void fu_struct_bnr_dp_aux_command_set_opcode(FuStructBnrDpAuxCommand *st, FuBnrDpOpcodes value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_BNR_DP_AUX_COMMAND_OFFSET_MODULE_NUMBER 0x0
#define FU_STRUCT_BNR_DP_AUX_COMMAND_OFFSET_OPCODE 0x1
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_BNR_DP_AUX_COMMAND_SIZE 0x2
#endif

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

FuStructBnrDpAuxRequest *fu_struct_bnr_dp_aux_request_ref(FuStructBnrDpAuxRequest *st) G_GNUC_NON_NULL(1);
void fu_struct_bnr_dp_aux_request_unref(FuStructBnrDpAuxRequest *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructBnrDpAuxRequest, fu_struct_bnr_dp_aux_request_unref)
FuStructBnrDpAuxRequest *fu_struct_bnr_dp_aux_request_new(void) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_bnr_dp_aux_request_set_data_len(FuStructBnrDpAuxRequest *st, guint16 value) G_GNUC_NON_NULL(1);
void fu_struct_bnr_dp_aux_request_set_offset(FuStructBnrDpAuxRequest *st, guint16 value) G_GNUC_NON_NULL(1);
gboolean
fu_struct_bnr_dp_aux_request_set_command(FuStructBnrDpAuxRequest *st, const FuStructBnrDpAuxCommand *st_donor, GError **error) G_GNUC_NON_NULL(1, 2) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_BNR_DP_AUX_REQUEST_OFFSET_DATA_LEN 0x0
#define FU_STRUCT_BNR_DP_AUX_REQUEST_OFFSET_OFFSET 0x2
#define FU_STRUCT_BNR_DP_AUX_REQUEST_OFFSET_COMMAND 0x4
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_BNR_DP_AUX_REQUEST_SIZE 0x6
#endif

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

FuStructBnrDpAuxTxHeader *fu_struct_bnr_dp_aux_tx_header_ref(FuStructBnrDpAuxTxHeader *st) G_GNUC_NON_NULL(1);
void fu_struct_bnr_dp_aux_tx_header_unref(FuStructBnrDpAuxTxHeader *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructBnrDpAuxTxHeader, fu_struct_bnr_dp_aux_tx_header_unref)
FuStructBnrDpAuxTxHeader *fu_struct_bnr_dp_aux_tx_header_new(void) G_GNUC_WARN_UNUSED_RESULT;
gboolean
fu_struct_bnr_dp_aux_tx_header_set_request(FuStructBnrDpAuxTxHeader *st, const FuStructBnrDpAuxRequest *st_donor, GError **error) G_GNUC_NON_NULL(1, 2) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_bnr_dp_aux_tx_header_set_checksum(FuStructBnrDpAuxTxHeader *st, guint8 value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_BNR_DP_AUX_TX_HEADER_OFFSET_REQUEST 0x0
#define FU_STRUCT_BNR_DP_AUX_TX_HEADER_OFFSET_CHECKSUM 0x6
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_BNR_DP_AUX_TX_HEADER_SIZE 0x7
#endif

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

FuStructBnrDpAuxStatus *fu_struct_bnr_dp_aux_status_ref(FuStructBnrDpAuxStatus *st) G_GNUC_NON_NULL(1);
void fu_struct_bnr_dp_aux_status_unref(FuStructBnrDpAuxStatus *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructBnrDpAuxStatus, fu_struct_bnr_dp_aux_status_unref)
FuStructBnrDpAuxStatus *fu_struct_bnr_dp_aux_status_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_bnr_dp_aux_status_get_error(const FuStructBnrDpAuxStatus *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_BNR_DP_AUX_STATUS_OFFSET_ERROR 0x1
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_BNR_DP_AUX_STATUS_SIZE 0x2
#endif

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

FuStructBnrDpAuxResponse *fu_struct_bnr_dp_aux_response_ref(FuStructBnrDpAuxResponse *st) G_GNUC_NON_NULL(1);
void fu_struct_bnr_dp_aux_response_unref(FuStructBnrDpAuxResponse *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructBnrDpAuxResponse, fu_struct_bnr_dp_aux_response_unref)
guint16 fu_struct_bnr_dp_aux_response_get_data_len(const FuStructBnrDpAuxResponse *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_BNR_DP_AUX_RESPONSE_OFFSET_DATA_LEN 0x0
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_BNR_DP_AUX_RESPONSE_SIZE 0x6
#endif

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

FuStructBnrDpAuxRxHeader *fu_struct_bnr_dp_aux_rx_header_ref(FuStructBnrDpAuxRxHeader *st) G_GNUC_NON_NULL(1);
void fu_struct_bnr_dp_aux_rx_header_unref(FuStructBnrDpAuxRxHeader *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructBnrDpAuxRxHeader, fu_struct_bnr_dp_aux_rx_header_unref)
FuStructBnrDpAuxRxHeader *fu_struct_bnr_dp_aux_rx_header_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuStructBnrDpAuxResponse *fu_struct_bnr_dp_aux_rx_header_get_response(const FuStructBnrDpAuxRxHeader *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_bnr_dp_aux_rx_header_get_checksum(const FuStructBnrDpAuxRxHeader *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_BNR_DP_AUX_RX_HEADER_OFFSET_RESPONSE 0x0
#define FU_STRUCT_BNR_DP_AUX_RX_HEADER_OFFSET_CHECKSUM 0x6
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_BNR_DP_AUX_RX_HEADER_SIZE 0x7
#endif

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

FuStructBnrDpInfoFlags *fu_struct_bnr_dp_info_flags_ref(FuStructBnrDpInfoFlags *st) G_GNUC_NON_NULL(1);
void fu_struct_bnr_dp_info_flags_unref(FuStructBnrDpInfoFlags *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructBnrDpInfoFlags, fu_struct_bnr_dp_info_flags_unref)
FuStructBnrDpInfoFlags *fu_struct_bnr_dp_info_flags_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuBnrDpInfoFlags fu_struct_bnr_dp_info_flags_get_inner(const FuStructBnrDpInfoFlags *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_BNR_DP_INFO_FLAGS_OFFSET_INNER 0x0
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_BNR_DP_INFO_FLAGS_SIZE 0x4
#endif

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

FuStructBnrDpFactoryData *fu_struct_bnr_dp_factory_data_ref(FuStructBnrDpFactoryData *st) G_GNUC_NON_NULL(1);
void fu_struct_bnr_dp_factory_data_unref(FuStructBnrDpFactoryData *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructBnrDpFactoryData, fu_struct_bnr_dp_factory_data_unref)
FuStructBnrDpFactoryData *fu_struct_bnr_dp_factory_data_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_bnr_dp_factory_data_get_version_struct(const FuStructBnrDpFactoryData *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_bnr_dp_factory_data_get_version_data(const FuStructBnrDpFactoryData *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_bnr_dp_factory_data_get_data_len(const FuStructBnrDpFactoryData *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_bnr_dp_factory_data_get_header_type(const FuStructBnrDpFactoryData *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_bnr_dp_factory_data_get_product_num(const FuStructBnrDpFactoryData *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_bnr_dp_factory_data_get_compat_id(const FuStructBnrDpFactoryData *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_bnr_dp_factory_data_get_vendor_id(const FuStructBnrDpFactoryData *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
gchar *fu_struct_bnr_dp_factory_data_get_hw_rev(const FuStructBnrDpFactoryData *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
gchar *fu_struct_bnr_dp_factory_data_get_serial(const FuStructBnrDpFactoryData *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
gchar *fu_struct_bnr_dp_factory_data_get_identification(const FuStructBnrDpFactoryData *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
gchar *fu_struct_bnr_dp_factory_data_get_hw_num(const FuStructBnrDpFactoryData *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_bnr_dp_factory_data_get_parent_product_num(const FuStructBnrDpFactoryData *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_bnr_dp_factory_data_get_parent_compat_id(const FuStructBnrDpFactoryData *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_BNR_DP_FACTORY_DATA_OFFSET_ID 0x0
#define FU_STRUCT_BNR_DP_FACTORY_DATA_OFFSET_VERSION_STRUCT 0x4
#define FU_STRUCT_BNR_DP_FACTORY_DATA_OFFSET_VERSION_DATA 0x5
#define FU_STRUCT_BNR_DP_FACTORY_DATA_OFFSET_DATA_LEN 0x6
#define FU_STRUCT_BNR_DP_FACTORY_DATA_OFFSET_HEADER_TYPE 0x8
#define FU_STRUCT_BNR_DP_FACTORY_DATA_OFFSET_PRODUCT_NUM 0xA
#define FU_STRUCT_BNR_DP_FACTORY_DATA_OFFSET_COMPAT_ID 0xE
#define FU_STRUCT_BNR_DP_FACTORY_DATA_OFFSET_VENDOR_ID 0x10
#define FU_STRUCT_BNR_DP_FACTORY_DATA_OFFSET_HW_REV 0x14
#define FU_STRUCT_BNR_DP_FACTORY_DATA_OFFSET_SERIAL 0x19
#define FU_STRUCT_BNR_DP_FACTORY_DATA_OFFSET_IDENTIFICATION 0x25
#define FU_STRUCT_BNR_DP_FACTORY_DATA_OFFSET_HW_NUM 0x4E
#define FU_STRUCT_BNR_DP_FACTORY_DATA_OFFSET_PARENT_PRODUCT_NUM 0x51
#define FU_STRUCT_BNR_DP_FACTORY_DATA_OFFSET_PARENT_COMPAT_ID 0x55
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_BNR_DP_FACTORY_DATA_SIZE_ID 0x4
#define FU_STRUCT_BNR_DP_FACTORY_DATA_N_ELEMENTS_ID 4
#define FU_STRUCT_BNR_DP_FACTORY_DATA_SIZE_HW_REV 0x5
#define FU_STRUCT_BNR_DP_FACTORY_DATA_N_ELEMENTS_HW_REV 5
#define FU_STRUCT_BNR_DP_FACTORY_DATA_SIZE_SERIAL 0xC
#define FU_STRUCT_BNR_DP_FACTORY_DATA_N_ELEMENTS_SERIAL 12
#define FU_STRUCT_BNR_DP_FACTORY_DATA_SIZE_IDENTIFICATION 0x29
#define FU_STRUCT_BNR_DP_FACTORY_DATA_N_ELEMENTS_IDENTIFICATION 41
#define FU_STRUCT_BNR_DP_FACTORY_DATA_SIZE_HW_NUM 0x3
#define FU_STRUCT_BNR_DP_FACTORY_DATA_N_ELEMENTS_HW_NUM 3
#define FU_STRUCT_BNR_DP_FACTORY_DATA_SIZE 0x57
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_BNR_DP_FACTORY_DATA_DEFAULT_ID "FACT"
#endif
