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

#pragma once
#include <fu-input-stream.h>
/**
 * FuSynapticsRmiFirmwareKind:
 */
typedef enum {
    /**
     * FU_SYNAPTICS_RMI_FIRMWARE_KIND_UNKNOWN:
     */
    FU_SYNAPTICS_RMI_FIRMWARE_KIND_UNKNOWN = 0x00,
    /**
     * FU_SYNAPTICS_RMI_FIRMWARE_KIND_V0X:
     */
    FU_SYNAPTICS_RMI_FIRMWARE_KIND_V0X = 0x01,
    /**
     * FU_SYNAPTICS_RMI_FIRMWARE_KIND_V10:
     */
    FU_SYNAPTICS_RMI_FIRMWARE_KIND_V10 = 0x10,
}  FuSynapticsRmiFirmwareKind;
/**
 * FuSynapticsRmiDeviceFlags:
 */
typedef enum {
    /**
     * FU_SYNAPTICS_RMI_DEVICE_FLAG_NONE:
     */
    FU_SYNAPTICS_RMI_DEVICE_FLAG_NONE = 0,
    /**
     * FU_SYNAPTICS_RMI_DEVICE_FLAG_ALLOW_FAILURE:
     */
    FU_SYNAPTICS_RMI_DEVICE_FLAG_ALLOW_FAILURE = 1 << 0,
    /**
     * FU_SYNAPTICS_RMI_DEVICE_FLAG_FORCE:
     */
    FU_SYNAPTICS_RMI_DEVICE_FLAG_FORCE = 1 << 1,
} G_GNUC_FLAG_ENUM FuSynapticsRmiDeviceFlags;
/**
 * FuRmiPartitionId:
 */
typedef enum {
    /**
     * FU_RMI_PARTITION_ID_NONE:
     */
    FU_RMI_PARTITION_ID_NONE = 0x00,
    /**
     * FU_RMI_PARTITION_ID_BOOTLOADER:
     */
    FU_RMI_PARTITION_ID_BOOTLOADER = 0x01,
    /**
     * FU_RMI_PARTITION_ID_DEVICE_CONFIG:
     */
    FU_RMI_PARTITION_ID_DEVICE_CONFIG,
    /**
     * FU_RMI_PARTITION_ID_FLASH_CONFIG:
     */
    FU_RMI_PARTITION_ID_FLASH_CONFIG,
    /**
     * FU_RMI_PARTITION_ID_MANUFACTURING_BLOCK:
     */
    FU_RMI_PARTITION_ID_MANUFACTURING_BLOCK,
    /**
     * FU_RMI_PARTITION_ID_GUEST_SERIALIZATION:
     */
    FU_RMI_PARTITION_ID_GUEST_SERIALIZATION,
    /**
     * FU_RMI_PARTITION_ID_GLOBAL_PARAMETERS:
     */
    FU_RMI_PARTITION_ID_GLOBAL_PARAMETERS,
    /**
     * FU_RMI_PARTITION_ID_CORE_CODE:
     */
    FU_RMI_PARTITION_ID_CORE_CODE,
    /**
     * FU_RMI_PARTITION_ID_CORE_CONFIG:
     */
    FU_RMI_PARTITION_ID_CORE_CONFIG,
    /**
     * FU_RMI_PARTITION_ID_GUEST_CODE:
     */
    FU_RMI_PARTITION_ID_GUEST_CODE,
    /**
     * FU_RMI_PARTITION_ID_DISPLAY_CONFIG:
     */
    FU_RMI_PARTITION_ID_DISPLAY_CONFIG,
    /**
     * FU_RMI_PARTITION_ID_EXTERNAL_TOUCH_AFE_CONFIG:
     */
    FU_RMI_PARTITION_ID_EXTERNAL_TOUCH_AFE_CONFIG,
    /**
     * FU_RMI_PARTITION_ID_UTILITY_PARAMETER:
     */
    FU_RMI_PARTITION_ID_UTILITY_PARAMETER,
    /**
     * FU_RMI_PARTITION_ID_PUBKEY:
     */
    FU_RMI_PARTITION_ID_PUBKEY,
    /**
     * FU_RMI_PARTITION_ID_FIXED_LOCATION_DATA:
     */
    FU_RMI_PARTITION_ID_FIXED_LOCATION_DATA = 0x0E,
}  FuRmiPartitionId;
const gchar *fu_rmi_partition_id_to_string(FuRmiPartitionId val) G_GNUC_CONST;
/**
 * FuRmiContainerId:
 */
typedef enum {
    /**
     * FU_RMI_CONTAINER_ID_TOP_LEVEL:
     */
    FU_RMI_CONTAINER_ID_TOP_LEVEL,
    /**
     * FU_RMI_CONTAINER_ID_UI:
     */
    FU_RMI_CONTAINER_ID_UI,
    /**
     * FU_RMI_CONTAINER_ID_UI_CONFIG:
     */
    FU_RMI_CONTAINER_ID_UI_CONFIG,
    /**
     * FU_RMI_CONTAINER_ID_BL:
     */
    FU_RMI_CONTAINER_ID_BL,
    /**
     * FU_RMI_CONTAINER_ID_BL_IMAGE:
     */
    FU_RMI_CONTAINER_ID_BL_IMAGE,
    /**
     * FU_RMI_CONTAINER_ID_BL_CONFIG:
     */
    FU_RMI_CONTAINER_ID_BL_CONFIG,
    /**
     * FU_RMI_CONTAINER_ID_BL_LOCKDOWN_INFO:
     */
    FU_RMI_CONTAINER_ID_BL_LOCKDOWN_INFO,
    /**
     * FU_RMI_CONTAINER_ID_PERMANENT_CONFIG:
     */
    FU_RMI_CONTAINER_ID_PERMANENT_CONFIG,
    /**
     * FU_RMI_CONTAINER_ID_GUEST_CODE:
     */
    FU_RMI_CONTAINER_ID_GUEST_CODE,
    /**
     * FU_RMI_CONTAINER_ID_BL_PROTOCOL_DESCRIPTOR:
     */
    FU_RMI_CONTAINER_ID_BL_PROTOCOL_DESCRIPTOR,
    /**
     * FU_RMI_CONTAINER_ID_UI_PROTOCOL_DESCRIPTOR:
     */
    FU_RMI_CONTAINER_ID_UI_PROTOCOL_DESCRIPTOR,
    /**
     * FU_RMI_CONTAINER_ID_RMI_SELF_DISCOVERY:
     */
    FU_RMI_CONTAINER_ID_RMI_SELF_DISCOVERY,
    /**
     * FU_RMI_CONTAINER_ID_RMI_PAGE_CONTENT:
     */
    FU_RMI_CONTAINER_ID_RMI_PAGE_CONTENT,
    /**
     * FU_RMI_CONTAINER_ID_GENERAL_INFORMATION:
     */
    FU_RMI_CONTAINER_ID_GENERAL_INFORMATION,
    /**
     * FU_RMI_CONTAINER_ID_DEVICE_CONFIG:
     */
    FU_RMI_CONTAINER_ID_DEVICE_CONFIG,
    /**
     * FU_RMI_CONTAINER_ID_FLASH_CONFIG:
     */
    FU_RMI_CONTAINER_ID_FLASH_CONFIG,
    /**
     * FU_RMI_CONTAINER_ID_GUEST_SERIALIZATION:
     */
    FU_RMI_CONTAINER_ID_GUEST_SERIALIZATION,
    /**
     * FU_RMI_CONTAINER_ID_GLOBAL_PARAMETERS:
     */
    FU_RMI_CONTAINER_ID_GLOBAL_PARAMETERS,
    /**
     * FU_RMI_CONTAINER_ID_CORE_CODE:
     */
    FU_RMI_CONTAINER_ID_CORE_CODE,
    /**
     * FU_RMI_CONTAINER_ID_CORE_CONFIG:
     */
    FU_RMI_CONTAINER_ID_CORE_CONFIG,
    /**
     * FU_RMI_CONTAINER_ID_DISPLAY_CONFIG:
     */
    FU_RMI_CONTAINER_ID_DISPLAY_CONFIG,
    /**
     * FU_RMI_CONTAINER_ID_EXTERNAL_TOUCH_AFE_CONFIG:
     */
    FU_RMI_CONTAINER_ID_EXTERNAL_TOUCH_AFE_CONFIG,
    /**
     * FU_RMI_CONTAINER_ID_UTILITY:
     */
    FU_RMI_CONTAINER_ID_UTILITY,
    /**
     * FU_RMI_CONTAINER_ID_UTILITY_PARAMETER:
     */
    FU_RMI_CONTAINER_ID_UTILITY_PARAMETER,
    /**
     * FU_RMI_CONTAINER_ID_FIXED_LOCATION_DATA:
     */
    FU_RMI_CONTAINER_ID_FIXED_LOCATION_DATA = 27,
}  FuRmiContainerId;
const gchar *fu_rmi_container_id_to_string(FuRmiContainerId val) G_GNUC_CONST;
/**
 * FuRmiEdpCommand:
 *
 * PS2 Data Port Command
 */
typedef enum {
    /**
     * FU_RMI_EDP_COMMAND_AUX_FULL_RMI_BACK_DOOR:
     */
    FU_RMI_EDP_COMMAND_AUX_FULL_RMI_BACK_DOOR = 0x7F,
    /**
     * FU_RMI_EDP_COMMAND_AUX_ACCESS_MODE_BYTE1:
     */
    FU_RMI_EDP_COMMAND_AUX_ACCESS_MODE_BYTE1 = 0xE0,
    /**
     * FU_RMI_EDP_COMMAND_AUX_ACCESS_MODE_BYTE2:
     */
    FU_RMI_EDP_COMMAND_AUX_ACCESS_MODE_BYTE2 = 0xE1,
    /**
     * FU_RMI_EDP_COMMAND_AUX_IBM_READ_SECONDARY_ID:
     */
    FU_RMI_EDP_COMMAND_AUX_IBM_READ_SECONDARY_ID = 0xE1,
    /**
     * FU_RMI_EDP_COMMAND_AUX_SET_SCALING1_TO1:
     */
    FU_RMI_EDP_COMMAND_AUX_SET_SCALING1_TO1 = 0xE6,
    /**
     * FU_RMI_EDP_COMMAND_AUX_SET_SCALING2_TO1:
     */
    FU_RMI_EDP_COMMAND_AUX_SET_SCALING2_TO1 = 0xE7,
    /**
     * FU_RMI_EDP_COMMAND_AUX_SET_RESOLUTION:
     */
    FU_RMI_EDP_COMMAND_AUX_SET_RESOLUTION = 0xE8,
    /**
     * FU_RMI_EDP_COMMAND_AUX_STATUS_REQUEST:
     */
    FU_RMI_EDP_COMMAND_AUX_STATUS_REQUEST = 0xE9,
    /**
     * FU_RMI_EDP_COMMAND_AUX_SET_STREAM_MODE:
     */
    FU_RMI_EDP_COMMAND_AUX_SET_STREAM_MODE = 0xEA,
    /**
     * FU_RMI_EDP_COMMAND_AUX_READ_DATA:
     */
    FU_RMI_EDP_COMMAND_AUX_READ_DATA = 0xEB,
    /**
     * FU_RMI_EDP_COMMAND_AUX_RESET_WRAP_MODE:
     */
    FU_RMI_EDP_COMMAND_AUX_RESET_WRAP_MODE = 0xEC,
    /**
     * FU_RMI_EDP_COMMAND_AUX_SET_WRAP_MODE:
     */
    FU_RMI_EDP_COMMAND_AUX_SET_WRAP_MODE = 0xEE,
    /**
     * FU_RMI_EDP_COMMAND_AUX_SET_REMOTE_MODE:
     */
    FU_RMI_EDP_COMMAND_AUX_SET_REMOTE_MODE = 0xF0,
    /**
     * FU_RMI_EDP_COMMAND_AUX_READ_DEVICE_TYPE:
     */
    FU_RMI_EDP_COMMAND_AUX_READ_DEVICE_TYPE = 0xF2,
    /**
     * FU_RMI_EDP_COMMAND_AUX_SET_SAMPLE_RATE:
     */
    FU_RMI_EDP_COMMAND_AUX_SET_SAMPLE_RATE = 0xF3,
    /**
     * FU_RMI_EDP_COMMAND_AUX_ENABLE:
     */
    FU_RMI_EDP_COMMAND_AUX_ENABLE = 0xF4,
    /**
     * FU_RMI_EDP_COMMAND_AUX_DISABLE:
     */
    FU_RMI_EDP_COMMAND_AUX_DISABLE = 0xF5,
    /**
     * FU_RMI_EDP_COMMAND_AUX_SET_DEFAULT:
     */
    FU_RMI_EDP_COMMAND_AUX_SET_DEFAULT = 0xF6,
    /**
     * FU_RMI_EDP_COMMAND_AUX_RESEND:
     */
    FU_RMI_EDP_COMMAND_AUX_RESEND = 0xFE,
    /**
     * FU_RMI_EDP_COMMAND_AUX_RESET:
     */
    FU_RMI_EDP_COMMAND_AUX_RESET = 0xFF,
}  FuRmiEdpCommand;
/**
 * FuRmiDeviceResponse:
 */
typedef enum {
    /**
     * FU_RMI_DEVICE_RESPONSE_TOUCH_PAD:
     */
    FU_RMI_DEVICE_RESPONSE_TOUCH_PAD = 0x47,
    /**
     * FU_RMI_DEVICE_RESPONSE_STYK:
     */
    FU_RMI_DEVICE_RESPONSE_STYK = 0x46,
    /**
     * FU_RMI_DEVICE_RESPONSE_CONTROL_BAR:
     */
    FU_RMI_DEVICE_RESPONSE_CONTROL_BAR = 0x44,
    /**
     * FU_RMI_DEVICE_RESPONSE_RGB_CONTROL_BAR:
     */
    FU_RMI_DEVICE_RESPONSE_RGB_CONTROL_BAR = 0x43,
}  FuRmiDeviceResponse;
/**
 * FuRmiStatusRequest:
 */
typedef enum {
    /**
     * FU_RMI_STATUS_REQUEST_IDENTIFY_SYNAPTICS:
     */
    FU_RMI_STATUS_REQUEST_IDENTIFY_SYNAPTICS = 0x00,
    /**
     * FU_RMI_STATUS_REQUEST_READ_TOUCH_PAD_MODES:
     */
    FU_RMI_STATUS_REQUEST_READ_TOUCH_PAD_MODES = 0x01,
    /**
     * FU_RMI_STATUS_REQUEST_READ_MODE_BYTE:
     */
    FU_RMI_STATUS_REQUEST_READ_MODE_BYTE = 0x01,
    /**
     * FU_RMI_STATUS_REQUEST_READ_EDGE_MARGINS:
     */
    FU_RMI_STATUS_REQUEST_READ_EDGE_MARGINS = 0x02,
    /**
     * FU_RMI_STATUS_REQUEST_READ_CAPABILITIES:
     */
    FU_RMI_STATUS_REQUEST_READ_CAPABILITIES = 0x02,
    /**
     * FU_RMI_STATUS_REQUEST_READ_MODEL_I_D:
     */
    FU_RMI_STATUS_REQUEST_READ_MODEL_I_D = 0x03,
    /**
     * FU_RMI_STATUS_REQUEST_READ_COMPILATION_DATE:
     */
    FU_RMI_STATUS_REQUEST_READ_COMPILATION_DATE = 0x04,
    /**
     * FU_RMI_STATUS_REQUEST_READ_SERIAL_NUMBER_PREFIX:
     */
    FU_RMI_STATUS_REQUEST_READ_SERIAL_NUMBER_PREFIX = 0x06,
    /**
     * FU_RMI_STATUS_REQUEST_READ_SERIAL_NUMBER_SUFFIX:
     */
    FU_RMI_STATUS_REQUEST_READ_SERIAL_NUMBER_SUFFIX = 0x07,
    /**
     * FU_RMI_STATUS_REQUEST_READ_RESOLUTIONS:
     */
    FU_RMI_STATUS_REQUEST_READ_RESOLUTIONS = 0x08,
    /**
     * FU_RMI_STATUS_REQUEST_READ_EXTRA_CAPABILITIES1:
     */
    FU_RMI_STATUS_REQUEST_READ_EXTRA_CAPABILITIES1 = 0x09,
    /**
     * FU_RMI_STATUS_REQUEST_READ_EXTRA_CAPABILITIES2:
     */
    FU_RMI_STATUS_REQUEST_READ_EXTRA_CAPABILITIES2 = 0x0A,
    /**
     * FU_RMI_STATUS_REQUEST_READ_EXTRA_CAPABILITIES3:
     */
    FU_RMI_STATUS_REQUEST_READ_EXTRA_CAPABILITIES3 = 0x0B,
    /**
     * FU_RMI_STATUS_REQUEST_READ_EXTRA_CAPABILITIES4:
     */
    FU_RMI_STATUS_REQUEST_READ_EXTRA_CAPABILITIES4 = 0x0C,
    /**
     * FU_RMI_STATUS_REQUEST_READ_EXTRA_CAPABILITIES5:
     */
    FU_RMI_STATUS_REQUEST_READ_EXTRA_CAPABILITIES5 = 0x0D,
    /**
     * FU_RMI_STATUS_REQUEST_READ_COORDINATES:
     */
    FU_RMI_STATUS_REQUEST_READ_COORDINATES = 0x0D,
    /**
     * FU_RMI_STATUS_REQUEST_READ_EXTRA_CAPABILITIES6:
     */
    FU_RMI_STATUS_REQUEST_READ_EXTRA_CAPABILITIES6 = 0x0E,
    /**
     * FU_RMI_STATUS_REQUEST_READ_EXTRA_CAPABILITIES7:
     */
    FU_RMI_STATUS_REQUEST_READ_EXTRA_CAPABILITIES7 = 0x0F,
}  FuRmiStatusRequest;
/**
 * FuRmiDataPortStatus:
 */
typedef enum {
    /**
     * FU_RMI_DATA_PORT_STATUS_ACKNOWLEDGE:
     */
    FU_RMI_DATA_PORT_STATUS_ACKNOWLEDGE = 0xFA,
    /**
     * FU_RMI_DATA_PORT_STATUS_ERROR:
     */
    FU_RMI_DATA_PORT_STATUS_ERROR = 0xFC,
    /**
     * FU_RMI_DATA_PORT_STATUS_RESEND:
     */
    FU_RMI_DATA_PORT_STATUS_RESEND = 0xFE,
    /**
     * FU_RMI_DATA_PORT_STATUS_TIME_OUT:
     */
    FU_RMI_DATA_PORT_STATUS_TIME_OUT = 0x100,
}  FuRmiDataPortStatus;
/**
 * FuRmiSetSampleRate:
 */
typedef enum {
    /**
     * FU_RMI_SET_SAMPLE_RATE_SET_MODE_BYTE1:
     */
    FU_RMI_SET_SAMPLE_RATE_SET_MODE_BYTE1 = 0x0A,
    /**
     * FU_RMI_SET_SAMPLE_RATE_SET_MODE_BYTE2:
     */
    FU_RMI_SET_SAMPLE_RATE_SET_MODE_BYTE2 = 0x14,
    /**
     * FU_RMI_SET_SAMPLE_RATE_SET_MODE_BYTE3:
     */
    FU_RMI_SET_SAMPLE_RATE_SET_MODE_BYTE3 = 0x28,
    /**
     * FU_RMI_SET_SAMPLE_RATE_SET_MODE_BYTE4:
     */
    FU_RMI_SET_SAMPLE_RATE_SET_MODE_BYTE4 = 0x3C,
    /**
     * FU_RMI_SET_SAMPLE_RATE_SET_DELUXE_MODE_BYTE1:
     */
    FU_RMI_SET_SAMPLE_RATE_SET_DELUXE_MODE_BYTE1 = 0x0A,
    /**
     * FU_RMI_SET_SAMPLE_RATE_SET_DELUXE_MODE_BYTE2:
     */
    FU_RMI_SET_SAMPLE_RATE_SET_DELUXE_MODE_BYTE2 = 0x3C,
    /**
     * FU_RMI_SET_SAMPLE_RATE_SET_DELUXE_MODE_BYTE3:
     */
    FU_RMI_SET_SAMPLE_RATE_SET_DELUXE_MODE_BYTE3 = 0xC8,
    /**
     * FU_RMI_SET_SAMPLE_RATE_FAST_RECALIBRATE:
     */
    FU_RMI_SET_SAMPLE_RATE_FAST_RECALIBRATE = 0x50,
    /**
     * FU_RMI_SET_SAMPLE_RATE_PASS_THROUGH_COMMAND_TUNNEL:
     */
    FU_RMI_SET_SAMPLE_RATE_PASS_THROUGH_COMMAND_TUNNEL = 0x28,
}  FuRmiSetSampleRate;
/**
 * FuRmiStickDeviceType:
 */
typedef enum {
    /**
     * FU_RMI_STICK_DEVICE_TYPE_NONE:
     */
    FU_RMI_STICK_DEVICE_TYPE_NONE = 0,
    /**
     * FU_RMI_STICK_DEVICE_TYPE_IBM:
     */
    FU_RMI_STICK_DEVICE_TYPE_IBM,
    /**
     * FU_RMI_STICK_DEVICE_TYPE_JYT_SYNA:
     */
    FU_RMI_STICK_DEVICE_TYPE_JYT_SYNA = 5,
    /**
     * FU_RMI_STICK_DEVICE_TYPE_SYNAPTICS:
     */
    FU_RMI_STICK_DEVICE_TYPE_SYNAPTICS = 6,
    /**
     * FU_RMI_STICK_DEVICE_TYPE_UNKNOWN:
     */
    FU_RMI_STICK_DEVICE_TYPE_UNKNOWN = 0xFFFFFFFF,
}  FuRmiStickDeviceType;
/**
 * FuSynapticsRmiFlashCmd:
 */
typedef enum {
    /**
     * FU_SYNAPTICS_RMI_FLASH_CMD_IDLE:
     */
    FU_SYNAPTICS_RMI_FLASH_CMD_IDLE,
    /**
     * FU_SYNAPTICS_RMI_FLASH_CMD_ENTER_BL:
     */
    FU_SYNAPTICS_RMI_FLASH_CMD_ENTER_BL,
    /**
     * FU_SYNAPTICS_RMI_FLASH_CMD_READ:
     */
    FU_SYNAPTICS_RMI_FLASH_CMD_READ,
    /**
     * FU_SYNAPTICS_RMI_FLASH_CMD_WRITE:
     */
    FU_SYNAPTICS_RMI_FLASH_CMD_WRITE,
    /**
     * FU_SYNAPTICS_RMI_FLASH_CMD_ERASE:
     */
    FU_SYNAPTICS_RMI_FLASH_CMD_ERASE,
    /**
     * FU_SYNAPTICS_RMI_FLASH_CMD_ERASE_AP:
     */
    FU_SYNAPTICS_RMI_FLASH_CMD_ERASE_AP,
    /**
     * FU_SYNAPTICS_RMI_FLASH_CMD_SENSOR_ID:
     */
    FU_SYNAPTICS_RMI_FLASH_CMD_SENSOR_ID,
    /**
     * FU_SYNAPTICS_RMI_FLASH_CMD_SIGNATURE:
     */
    FU_SYNAPTICS_RMI_FLASH_CMD_SIGNATURE,
}  FuSynapticsRmiFlashCmd;
#define FU_SYNAPTICS_RMI_FLASH_CMD_LAST 8
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructRmiPartitionTbl;

FuStructRmiPartitionTbl *fu_struct_rmi_partition_tbl_ref(FuStructRmiPartitionTbl *st) G_GNUC_NON_NULL(1);
void fu_struct_rmi_partition_tbl_unref(FuStructRmiPartitionTbl *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructRmiPartitionTbl, fu_struct_rmi_partition_tbl_unref)
FuStructRmiPartitionTbl *fu_struct_rmi_partition_tbl_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_rmi_partition_tbl_get_partition_id(const FuStructRmiPartitionTbl *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_rmi_partition_tbl_get_partition_len(const FuStructRmiPartitionTbl *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_rmi_partition_tbl_get_partition_addr(const FuStructRmiPartitionTbl *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_rmi_partition_tbl_get_partition_prop(const FuStructRmiPartitionTbl *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_RMI_PARTITION_TBL_OFFSET_PARTITION_ID 0x0
#define FU_STRUCT_RMI_PARTITION_TBL_OFFSET_PARTITION_LEN 0x2
#define FU_STRUCT_RMI_PARTITION_TBL_OFFSET_PARTITION_ADDR 0x4
#define FU_STRUCT_RMI_PARTITION_TBL_OFFSET_PARTITION_PROP 0x6
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_RMI_PARTITION_TBL_SIZE 0x8
#endif

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

FuStructRmiImg *fu_struct_rmi_img_ref(FuStructRmiImg *st) G_GNUC_NON_NULL(1);
void fu_struct_rmi_img_unref(FuStructRmiImg *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructRmiImg, fu_struct_rmi_img_unref)
FuStructRmiImg *fu_struct_rmi_img_new(void) G_GNUC_WARN_UNUSED_RESULT;
FuStructRmiImg *fu_struct_rmi_img_parse_stream(GInputStream *stream, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_rmi_img_get_checksum(const FuStructRmiImg *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_rmi_img_get_io_offset(const FuStructRmiImg *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_rmi_img_get_bootloader_version(const FuStructRmiImg *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_rmi_img_get_image_size(const FuStructRmiImg *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_rmi_img_get_config_size(const FuStructRmiImg *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
gchar *fu_struct_rmi_img_get_product_id(const FuStructRmiImg *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_rmi_img_get_package_id(const FuStructRmiImg *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_rmi_img_get_product_info(const FuStructRmiImg *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_rmi_img_get_fw_build_id(const FuStructRmiImg *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_rmi_img_get_signature_size(const FuStructRmiImg *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_rmi_img_set_checksum(FuStructRmiImg *st, guint32 value) G_GNUC_NON_NULL(1);
void fu_struct_rmi_img_set_io_offset(FuStructRmiImg *st, guint8 value) G_GNUC_NON_NULL(1);
void fu_struct_rmi_img_set_bootloader_version(FuStructRmiImg *st, guint8 value) G_GNUC_NON_NULL(1);
void fu_struct_rmi_img_set_image_size(FuStructRmiImg *st, guint32 value) G_GNUC_NON_NULL(1);
void fu_struct_rmi_img_set_config_size(FuStructRmiImg *st, guint32 value) G_GNUC_NON_NULL(1);
gboolean fu_struct_rmi_img_set_product_id(FuStructRmiImg *st, const gchar *value, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_rmi_img_set_package_id(FuStructRmiImg *st, guint32 value) G_GNUC_NON_NULL(1);
void fu_struct_rmi_img_set_product_info(FuStructRmiImg *st, guint32 value) G_GNUC_NON_NULL(1);
void fu_struct_rmi_img_set_fw_build_id(FuStructRmiImg *st, guint32 value) G_GNUC_NON_NULL(1);
void fu_struct_rmi_img_set_signature_size(FuStructRmiImg *st, guint32 value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_RMI_IMG_OFFSET_CHECKSUM 0x0
#define FU_STRUCT_RMI_IMG_OFFSET_IO_OFFSET 0x6
#define FU_STRUCT_RMI_IMG_OFFSET_BOOTLOADER_VERSION 0x7
#define FU_STRUCT_RMI_IMG_OFFSET_IMAGE_SIZE 0x8
#define FU_STRUCT_RMI_IMG_OFFSET_CONFIG_SIZE 0xC
#define FU_STRUCT_RMI_IMG_OFFSET_PRODUCT_ID 0x10
#define FU_STRUCT_RMI_IMG_OFFSET_PACKAGE_ID 0x1A
#define FU_STRUCT_RMI_IMG_OFFSET_PRODUCT_INFO 0x1E
#define FU_STRUCT_RMI_IMG_OFFSET_FW_BUILD_ID 0x50
#define FU_STRUCT_RMI_IMG_OFFSET_SIGNATURE_SIZE 0x54
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_RMI_IMG_SIZE_PRODUCT_ID 0xA
#define FU_STRUCT_RMI_IMG_N_ELEMENTS_PRODUCT_ID 10
#define FU_STRUCT_RMI_IMG_SIZE 0x58
#endif

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

FuStructRmiContainerDescriptor *fu_struct_rmi_container_descriptor_ref(FuStructRmiContainerDescriptor *st) G_GNUC_NON_NULL(1);
void fu_struct_rmi_container_descriptor_unref(FuStructRmiContainerDescriptor *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructRmiContainerDescriptor, fu_struct_rmi_container_descriptor_unref)
FuStructRmiContainerDescriptor *fu_struct_rmi_container_descriptor_new(void) G_GNUC_WARN_UNUSED_RESULT;
FuStructRmiContainerDescriptor *fu_struct_rmi_container_descriptor_parse_stream(GInputStream *stream, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_rmi_container_descriptor_get_content_checksum(const FuStructRmiContainerDescriptor *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuRmiContainerId fu_struct_rmi_container_descriptor_get_container_id(const FuStructRmiContainerDescriptor *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_rmi_container_descriptor_get_minor_version(const FuStructRmiContainerDescriptor *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_rmi_container_descriptor_get_major_version(const FuStructRmiContainerDescriptor *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_rmi_container_descriptor_get_signature_size(const FuStructRmiContainerDescriptor *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_rmi_container_descriptor_get_container_option_flags(const FuStructRmiContainerDescriptor *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_rmi_container_descriptor_get_content_options_length(const FuStructRmiContainerDescriptor *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_rmi_container_descriptor_get_content_options_address(const FuStructRmiContainerDescriptor *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_rmi_container_descriptor_get_content_length(const FuStructRmiContainerDescriptor *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_rmi_container_descriptor_get_content_address(const FuStructRmiContainerDescriptor *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_rmi_container_descriptor_set_content_checksum(FuStructRmiContainerDescriptor *st, guint32 value) G_GNUC_NON_NULL(1);
void fu_struct_rmi_container_descriptor_set_container_id(FuStructRmiContainerDescriptor *st, FuRmiContainerId value) G_GNUC_NON_NULL(1);
void fu_struct_rmi_container_descriptor_set_minor_version(FuStructRmiContainerDescriptor *st, guint8 value) G_GNUC_NON_NULL(1);
void fu_struct_rmi_container_descriptor_set_major_version(FuStructRmiContainerDescriptor *st, guint8 value) G_GNUC_NON_NULL(1);
void fu_struct_rmi_container_descriptor_set_signature_size(FuStructRmiContainerDescriptor *st, guint32 value) G_GNUC_NON_NULL(1);
void fu_struct_rmi_container_descriptor_set_container_option_flags(FuStructRmiContainerDescriptor *st, guint32 value) G_GNUC_NON_NULL(1);
void fu_struct_rmi_container_descriptor_set_content_options_length(FuStructRmiContainerDescriptor *st, guint32 value) G_GNUC_NON_NULL(1);
void fu_struct_rmi_container_descriptor_set_content_options_address(FuStructRmiContainerDescriptor *st, guint32 value) G_GNUC_NON_NULL(1);
void fu_struct_rmi_container_descriptor_set_content_length(FuStructRmiContainerDescriptor *st, guint32 value) G_GNUC_NON_NULL(1);
void fu_struct_rmi_container_descriptor_set_content_address(FuStructRmiContainerDescriptor *st, guint32 value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_RMI_CONTAINER_DESCRIPTOR_OFFSET_CONTENT_CHECKSUM 0x0
#define FU_STRUCT_RMI_CONTAINER_DESCRIPTOR_OFFSET_CONTAINER_ID 0x4
#define FU_STRUCT_RMI_CONTAINER_DESCRIPTOR_OFFSET_MINOR_VERSION 0x6
#define FU_STRUCT_RMI_CONTAINER_DESCRIPTOR_OFFSET_MAJOR_VERSION 0x7
#define FU_STRUCT_RMI_CONTAINER_DESCRIPTOR_OFFSET_SIGNATURE_SIZE 0x8
#define FU_STRUCT_RMI_CONTAINER_DESCRIPTOR_OFFSET_CONTAINER_OPTION_FLAGS 0xC
#define FU_STRUCT_RMI_CONTAINER_DESCRIPTOR_OFFSET_CONTENT_OPTIONS_LENGTH 0x10
#define FU_STRUCT_RMI_CONTAINER_DESCRIPTOR_OFFSET_CONTENT_OPTIONS_ADDRESS 0x14
#define FU_STRUCT_RMI_CONTAINER_DESCRIPTOR_OFFSET_CONTENT_LENGTH 0x18
#define FU_STRUCT_RMI_CONTAINER_DESCRIPTOR_OFFSET_CONTENT_ADDRESS 0x1C
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_RMI_CONTAINER_DESCRIPTOR_SIZE 0x20
#endif

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

FuStructSynapticsRmiV7F34x *fu_struct_synaptics_rmi_v7_f34x_ref(FuStructSynapticsRmiV7F34x *st) G_GNUC_NON_NULL(1);
void fu_struct_synaptics_rmi_v7_f34x_unref(FuStructSynapticsRmiV7F34x *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructSynapticsRmiV7F34x, fu_struct_synaptics_rmi_v7_f34x_unref)
FuStructSynapticsRmiV7F34x *fu_struct_synaptics_rmi_v7_f34x_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_synaptics_rmi_v7_f34x_get_bootloader_id0(const FuStructSynapticsRmiV7F34x *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_synaptics_rmi_v7_f34x_get_bootloader_id1(const FuStructSynapticsRmiV7F34x *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_synaptics_rmi_v7_f34x_get_build_id(const FuStructSynapticsRmiV7F34x *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_synaptics_rmi_v7_f34x_get_block_size(const FuStructSynapticsRmiV7F34x *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_synaptics_rmi_v7_f34x_get_config_length(const FuStructSynapticsRmiV7F34x *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_synaptics_rmi_v7_f34x_get_payload_length(const FuStructSynapticsRmiV7F34x *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_synaptics_rmi_v7_f34x_get_supported_partitions(const FuStructSynapticsRmiV7F34x *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_SYNAPTICS_RMI_V7_F34X_OFFSET_BOOTLOADER_ID0 0x0
#define FU_STRUCT_SYNAPTICS_RMI_V7_F34X_OFFSET_BOOTLOADER_ID1 0x1
#define FU_STRUCT_SYNAPTICS_RMI_V7_F34X_OFFSET_BUILD_ID 0x2
#define FU_STRUCT_SYNAPTICS_RMI_V7_F34X_OFFSET_BLOCK_SIZE 0x7
#define FU_STRUCT_SYNAPTICS_RMI_V7_F34X_OFFSET_CONFIG_LENGTH 0xD
#define FU_STRUCT_SYNAPTICS_RMI_V7_F34X_OFFSET_PAYLOAD_LENGTH 0xF
#define FU_STRUCT_SYNAPTICS_RMI_V7_F34X_OFFSET_SUPPORTED_PARTITIONS 0x11
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_SYNAPTICS_RMI_V7_F34X_SIZE 0x13
#endif

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

FuStructSynapticsRmiV7EnterSbl *fu_struct_synaptics_rmi_v7_enter_sbl_ref(FuStructSynapticsRmiV7EnterSbl *st) G_GNUC_NON_NULL(1);
void fu_struct_synaptics_rmi_v7_enter_sbl_unref(FuStructSynapticsRmiV7EnterSbl *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructSynapticsRmiV7EnterSbl, fu_struct_synaptics_rmi_v7_enter_sbl_unref)
FuStructSynapticsRmiV7EnterSbl *fu_struct_synaptics_rmi_v7_enter_sbl_new(void) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_synaptics_rmi_v7_enter_sbl_set_bootloader_id0(FuStructSynapticsRmiV7EnterSbl *st, guint8 value) G_GNUC_NON_NULL(1);
void fu_struct_synaptics_rmi_v7_enter_sbl_set_bootloader_id1(FuStructSynapticsRmiV7EnterSbl *st, guint8 value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_SYNAPTICS_RMI_V7_ENTER_SBL_OFFSET_PARTITION_ID 0x0
#define FU_STRUCT_SYNAPTICS_RMI_V7_ENTER_SBL_OFFSET_CMD 0x5
#define FU_STRUCT_SYNAPTICS_RMI_V7_ENTER_SBL_OFFSET_BOOTLOADER_ID0 0x6
#define FU_STRUCT_SYNAPTICS_RMI_V7_ENTER_SBL_OFFSET_BOOTLOADER_ID1 0x7
#define FU_STRUCT_SYNAPTICS_RMI_V7_ENTER_SBL_OFFSET_UNKNOWN 0x8
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_SYNAPTICS_RMI_V7_ENTER_SBL_SIZE 0x9
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_SYNAPTICS_RMI_V7_ENTER_SBL_DEFAULT_PARTITION_ID FU_RMI_PARTITION_ID_BOOTLOADER
#define FU_STRUCT_SYNAPTICS_RMI_V7_ENTER_SBL_DEFAULT_CMD FU_SYNAPTICS_RMI_FLASH_CMD_ENTER_BL
#define FU_STRUCT_SYNAPTICS_RMI_V7_ENTER_SBL_DEFAULT_UNKNOWN 0x1
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructSynapticsRmiV7EnterBl;

FuStructSynapticsRmiV7EnterBl *fu_struct_synaptics_rmi_v7_enter_bl_ref(FuStructSynapticsRmiV7EnterBl *st) G_GNUC_NON_NULL(1);
void fu_struct_synaptics_rmi_v7_enter_bl_unref(FuStructSynapticsRmiV7EnterBl *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructSynapticsRmiV7EnterBl, fu_struct_synaptics_rmi_v7_enter_bl_unref)
FuStructSynapticsRmiV7EnterBl *fu_struct_synaptics_rmi_v7_enter_bl_new(void) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_synaptics_rmi_v7_enter_bl_set_bootloader_id0(FuStructSynapticsRmiV7EnterBl *st, guint8 value) G_GNUC_NON_NULL(1);
void fu_struct_synaptics_rmi_v7_enter_bl_set_bootloader_id1(FuStructSynapticsRmiV7EnterBl *st, guint8 value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_SYNAPTICS_RMI_V7_ENTER_BL_OFFSET_PARTITION_ID 0x0
#define FU_STRUCT_SYNAPTICS_RMI_V7_ENTER_BL_OFFSET_CMD 0x5
#define FU_STRUCT_SYNAPTICS_RMI_V7_ENTER_BL_OFFSET_BOOTLOADER_ID0 0x6
#define FU_STRUCT_SYNAPTICS_RMI_V7_ENTER_BL_OFFSET_BOOTLOADER_ID1 0x7
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_SYNAPTICS_RMI_V7_ENTER_BL_SIZE 0x8
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_SYNAPTICS_RMI_V7_ENTER_BL_DEFAULT_PARTITION_ID FU_RMI_PARTITION_ID_BOOTLOADER
#define FU_STRUCT_SYNAPTICS_RMI_V7_ENTER_BL_DEFAULT_CMD FU_SYNAPTICS_RMI_FLASH_CMD_ENTER_BL
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructSynapticsRmiV7Erase;

FuStructSynapticsRmiV7Erase *fu_struct_synaptics_rmi_v7_erase_ref(FuStructSynapticsRmiV7Erase *st) G_GNUC_NON_NULL(1);
void fu_struct_synaptics_rmi_v7_erase_unref(FuStructSynapticsRmiV7Erase *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructSynapticsRmiV7Erase, fu_struct_synaptics_rmi_v7_erase_unref)
FuStructSynapticsRmiV7Erase *fu_struct_synaptics_rmi_v7_erase_new(void) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_synaptics_rmi_v7_erase_set_partition_id(FuStructSynapticsRmiV7Erase *st, FuRmiPartitionId value) G_GNUC_NON_NULL(1);
void fu_struct_synaptics_rmi_v7_erase_set_bootloader_id0(FuStructSynapticsRmiV7Erase *st, guint8 value) G_GNUC_NON_NULL(1);
void fu_struct_synaptics_rmi_v7_erase_set_bootloader_id1(FuStructSynapticsRmiV7Erase *st, guint8 value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_SYNAPTICS_RMI_V7_ERASE_OFFSET_PARTITION_ID 0x0
#define FU_STRUCT_SYNAPTICS_RMI_V7_ERASE_OFFSET_CMD 0x5
#define FU_STRUCT_SYNAPTICS_RMI_V7_ERASE_OFFSET_BOOTLOADER_ID0 0x6
#define FU_STRUCT_SYNAPTICS_RMI_V7_ERASE_OFFSET_BOOTLOADER_ID1 0x7
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_SYNAPTICS_RMI_V7_ERASE_SIZE 0x8
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_SYNAPTICS_RMI_V7_ERASE_DEFAULT_CMD FU_SYNAPTICS_RMI_FLASH_CMD_ERASE
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructSynapticsRmiV7EraseCoreCode;

FuStructSynapticsRmiV7EraseCoreCode *fu_struct_synaptics_rmi_v7_erase_core_code_ref(FuStructSynapticsRmiV7EraseCoreCode *st) G_GNUC_NON_NULL(1);
void fu_struct_synaptics_rmi_v7_erase_core_code_unref(FuStructSynapticsRmiV7EraseCoreCode *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructSynapticsRmiV7EraseCoreCode, fu_struct_synaptics_rmi_v7_erase_core_code_unref)
FuStructSynapticsRmiV7EraseCoreCode *fu_struct_synaptics_rmi_v7_erase_core_code_new(void) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_synaptics_rmi_v7_erase_core_code_set_cmd(FuStructSynapticsRmiV7EraseCoreCode *st, FuSynapticsRmiFlashCmd value) G_GNUC_NON_NULL(1);
void fu_struct_synaptics_rmi_v7_erase_core_code_set_bootloader_id0(FuStructSynapticsRmiV7EraseCoreCode *st, guint8 value) G_GNUC_NON_NULL(1);
void fu_struct_synaptics_rmi_v7_erase_core_code_set_bootloader_id1(FuStructSynapticsRmiV7EraseCoreCode *st, guint8 value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_SYNAPTICS_RMI_V7_ERASE_CORE_CODE_OFFSET_PARTITION_ID 0x0
#define FU_STRUCT_SYNAPTICS_RMI_V7_ERASE_CORE_CODE_OFFSET_CMD 0x5
#define FU_STRUCT_SYNAPTICS_RMI_V7_ERASE_CORE_CODE_OFFSET_BOOTLOADER_ID0 0x6
#define FU_STRUCT_SYNAPTICS_RMI_V7_ERASE_CORE_CODE_OFFSET_BOOTLOADER_ID1 0x7
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_SYNAPTICS_RMI_V7_ERASE_CORE_CODE_SIZE 0x8
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_SYNAPTICS_RMI_V7_ERASE_CORE_CODE_DEFAULT_PARTITION_ID FU_RMI_PARTITION_ID_CORE_CODE
#define FU_STRUCT_SYNAPTICS_RMI_V7_ERASE_CORE_CODE_DEFAULT_CMD FU_SYNAPTICS_RMI_FLASH_CMD_ERASE_AP
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructSynapticsRmiV7EraseCoreConfig;

FuStructSynapticsRmiV7EraseCoreConfig *fu_struct_synaptics_rmi_v7_erase_core_config_ref(FuStructSynapticsRmiV7EraseCoreConfig *st) G_GNUC_NON_NULL(1);
void fu_struct_synaptics_rmi_v7_erase_core_config_unref(FuStructSynapticsRmiV7EraseCoreConfig *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructSynapticsRmiV7EraseCoreConfig, fu_struct_synaptics_rmi_v7_erase_core_config_unref)
FuStructSynapticsRmiV7EraseCoreConfig *fu_struct_synaptics_rmi_v7_erase_core_config_new(void) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_SYNAPTICS_RMI_V7_ERASE_CORE_CONFIG_OFFSET_PARTITION_ID 0x0
#define FU_STRUCT_SYNAPTICS_RMI_V7_ERASE_CORE_CONFIG_OFFSET_CMD 0x5
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_SYNAPTICS_RMI_V7_ERASE_CORE_CONFIG_SIZE 0x6
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_SYNAPTICS_RMI_V7_ERASE_CORE_CONFIG_DEFAULT_PARTITION_ID FU_RMI_PARTITION_ID_CORE_CONFIG
#define FU_STRUCT_SYNAPTICS_RMI_V7_ERASE_CORE_CONFIG_DEFAULT_CMD FU_SYNAPTICS_RMI_FLASH_CMD_ERASE
#endif
