/* auto-generated, do not modify */
#pragma once
#include <fwupd-common.h>

GByteArray *fu_struct_ifwi_cpd_new(void);
GByteArray *fu_struct_ifwi_cpd_parse_bytes(GBytes *blob, gsize offset, GError **error);
gboolean fu_struct_ifwi_cpd_validate_bytes(GBytes *blob, gsize offset, GError **error);
guint32 fu_struct_ifwi_cpd_get_num_of_entries(const GByteArray *st);
guint8 fu_struct_ifwi_cpd_get_header_version(const GByteArray *st);
guint8 fu_struct_ifwi_cpd_get_entry_version(const GByteArray *st);
guint8 fu_struct_ifwi_cpd_get_header_length(const GByteArray *st);
guint8 fu_struct_ifwi_cpd_get_checksum(const GByteArray *st);
guint32 fu_struct_ifwi_cpd_get_partition_name(const GByteArray *st);
guint32 fu_struct_ifwi_cpd_get_crc32(const GByteArray *st);
void fu_struct_ifwi_cpd_set_num_of_entries(GByteArray *st, guint32 value);
void fu_struct_ifwi_cpd_set_header_version(GByteArray *st, guint8 value);
void fu_struct_ifwi_cpd_set_entry_version(GByteArray *st, guint8 value);
void fu_struct_ifwi_cpd_set_header_length(GByteArray *st, guint8 value);
void fu_struct_ifwi_cpd_set_checksum(GByteArray *st, guint8 value);
void fu_struct_ifwi_cpd_set_partition_name(GByteArray *st, guint32 value);
void fu_struct_ifwi_cpd_set_crc32(GByteArray *st, guint32 value);
#define FU_STRUCT_IFWI_CPD_OFFSET_HEADER_MARKER 0x0
#define FU_STRUCT_IFWI_CPD_OFFSET_NUM_OF_ENTRIES 0x4
#define FU_STRUCT_IFWI_CPD_OFFSET_HEADER_VERSION 0x8
#define FU_STRUCT_IFWI_CPD_OFFSET_ENTRY_VERSION 0x9
#define FU_STRUCT_IFWI_CPD_OFFSET_HEADER_LENGTH 0xA
#define FU_STRUCT_IFWI_CPD_OFFSET_CHECKSUM 0xB
#define FU_STRUCT_IFWI_CPD_OFFSET_PARTITION_NAME 0xC
#define FU_STRUCT_IFWI_CPD_OFFSET_CRC32 0x10
#define FU_STRUCT_IFWI_CPD_SIZE 0x14
#define FU_STRUCT_IFWI_CPD_DEFAULT_HEADER_MARKER 0x44504324
#define FU_STRUCT_IFWI_CPD_DEFAULT_HEADER_LENGTH 20

GByteArray *fu_struct_ifwi_cpd_entry_new(void);
GByteArray *fu_struct_ifwi_cpd_entry_parse_bytes(GBytes *blob, gsize offset, GError **error);
gchar *fu_struct_ifwi_cpd_entry_get_name(const GByteArray *st);
guint32 fu_struct_ifwi_cpd_entry_get_offset(const GByteArray *st);
guint32 fu_struct_ifwi_cpd_entry_get_length(const GByteArray *st);
gboolean fu_struct_ifwi_cpd_entry_set_name(GByteArray *st, const gchar *value, GError **error);
void fu_struct_ifwi_cpd_entry_set_offset(GByteArray *st, guint32 value);
void fu_struct_ifwi_cpd_entry_set_length(GByteArray *st, guint32 value);
#define FU_STRUCT_IFWI_CPD_ENTRY_OFFSET_NAME 0x0
#define FU_STRUCT_IFWI_CPD_ENTRY_OFFSET_OFFSET 0xC
#define FU_STRUCT_IFWI_CPD_ENTRY_OFFSET_LENGTH 0x10
#define FU_STRUCT_IFWI_CPD_ENTRY_SIZE_NAME 0xC
#define FU_STRUCT_IFWI_CPD_ENTRY_SIZE 0x18

GByteArray *fu_struct_ifwi_cpd_manifest_new(void);
GByteArray *fu_struct_ifwi_cpd_manifest_parse_bytes(GBytes *blob, gsize offset, GError **error);
guint32 fu_struct_ifwi_cpd_manifest_get_header_type(const GByteArray *st);
guint32 fu_struct_ifwi_cpd_manifest_get_header_length(const GByteArray *st);
guint32 fu_struct_ifwi_cpd_manifest_get_header_version(const GByteArray *st);
guint32 fu_struct_ifwi_cpd_manifest_get_flags(const GByteArray *st);
guint32 fu_struct_ifwi_cpd_manifest_get_vendor(const GByteArray *st);
guint32 fu_struct_ifwi_cpd_manifest_get_date(const GByteArray *st);
guint32 fu_struct_ifwi_cpd_manifest_get_size(const GByteArray *st);
guint32 fu_struct_ifwi_cpd_manifest_get_id(const GByteArray *st);
guint32 fu_struct_ifwi_cpd_manifest_get_rsvd(const GByteArray *st);
guint64 fu_struct_ifwi_cpd_manifest_get_version(const GByteArray *st);
guint32 fu_struct_ifwi_cpd_manifest_get_svn(const GByteArray *st);
void fu_struct_ifwi_cpd_manifest_set_header_type(GByteArray *st, guint32 value);
void fu_struct_ifwi_cpd_manifest_set_header_length(GByteArray *st, guint32 value);
void fu_struct_ifwi_cpd_manifest_set_header_version(GByteArray *st, guint32 value);
void fu_struct_ifwi_cpd_manifest_set_flags(GByteArray *st, guint32 value);
void fu_struct_ifwi_cpd_manifest_set_vendor(GByteArray *st, guint32 value);
void fu_struct_ifwi_cpd_manifest_set_date(GByteArray *st, guint32 value);
void fu_struct_ifwi_cpd_manifest_set_size(GByteArray *st, guint32 value);
void fu_struct_ifwi_cpd_manifest_set_id(GByteArray *st, guint32 value);
void fu_struct_ifwi_cpd_manifest_set_rsvd(GByteArray *st, guint32 value);
void fu_struct_ifwi_cpd_manifest_set_version(GByteArray *st, guint64 value);
void fu_struct_ifwi_cpd_manifest_set_svn(GByteArray *st, guint32 value);
#define FU_STRUCT_IFWI_CPD_MANIFEST_OFFSET_HEADER_TYPE 0x0
#define FU_STRUCT_IFWI_CPD_MANIFEST_OFFSET_HEADER_LENGTH 0x4
#define FU_STRUCT_IFWI_CPD_MANIFEST_OFFSET_HEADER_VERSION 0x8
#define FU_STRUCT_IFWI_CPD_MANIFEST_OFFSET_FLAGS 0xC
#define FU_STRUCT_IFWI_CPD_MANIFEST_OFFSET_VENDOR 0x10
#define FU_STRUCT_IFWI_CPD_MANIFEST_OFFSET_DATE 0x14
#define FU_STRUCT_IFWI_CPD_MANIFEST_OFFSET_SIZE 0x18
#define FU_STRUCT_IFWI_CPD_MANIFEST_OFFSET_ID 0x1C
#define FU_STRUCT_IFWI_CPD_MANIFEST_OFFSET_RSVD 0x20
#define FU_STRUCT_IFWI_CPD_MANIFEST_OFFSET_VERSION 0x24
#define FU_STRUCT_IFWI_CPD_MANIFEST_OFFSET_SVN 0x2C
#define FU_STRUCT_IFWI_CPD_MANIFEST_SIZE 0x30

GByteArray *fu_struct_ifwi_cpd_manifest_ext_new(void);
GByteArray *fu_struct_ifwi_cpd_manifest_ext_parse_bytes(GBytes *blob, gsize offset, GError **error);
guint32 fu_struct_ifwi_cpd_manifest_ext_get_extension_type(const GByteArray *st);
guint32 fu_struct_ifwi_cpd_manifest_ext_get_extension_length(const GByteArray *st);
void fu_struct_ifwi_cpd_manifest_ext_set_extension_type(GByteArray *st, guint32 value);
void fu_struct_ifwi_cpd_manifest_ext_set_extension_length(GByteArray *st, guint32 value);
#define FU_STRUCT_IFWI_CPD_MANIFEST_EXT_OFFSET_EXTENSION_TYPE 0x0
#define FU_STRUCT_IFWI_CPD_MANIFEST_EXT_OFFSET_EXTENSION_LENGTH 0x4
#define FU_STRUCT_IFWI_CPD_MANIFEST_EXT_SIZE 0x8

GByteArray *fu_struct_ifwi_fpt_new(void);
GByteArray *fu_struct_ifwi_fpt_parse_bytes(GBytes *blob, gsize offset, GError **error);
gboolean fu_struct_ifwi_fpt_validate_bytes(GBytes *blob, gsize offset, GError **error);
guint32 fu_struct_ifwi_fpt_get_num_of_entries(const GByteArray *st);
guint8 fu_struct_ifwi_fpt_get_header_version(const GByteArray *st);
guint8 fu_struct_ifwi_fpt_get_header_length(const GByteArray *st);
guint8 fu_struct_ifwi_fpt_get_flags(const GByteArray *st);
guint16 fu_struct_ifwi_fpt_get_ticks_to_add(const GByteArray *st);
guint16 fu_struct_ifwi_fpt_get_tokens_to_add(const GByteArray *st);
guint32 fu_struct_ifwi_fpt_get_uma_size(const GByteArray *st);
guint32 fu_struct_ifwi_fpt_get_crc32(const GByteArray *st);
guint16 fu_struct_ifwi_fpt_get_fitc_major(const GByteArray *st);
guint16 fu_struct_ifwi_fpt_get_fitc_minor(const GByteArray *st);
guint16 fu_struct_ifwi_fpt_get_fitc_hotfix(const GByteArray *st);
guint16 fu_struct_ifwi_fpt_get_fitc_build(const GByteArray *st);
void fu_struct_ifwi_fpt_set_num_of_entries(GByteArray *st, guint32 value);
void fu_struct_ifwi_fpt_set_header_version(GByteArray *st, guint8 value);
void fu_struct_ifwi_fpt_set_header_length(GByteArray *st, guint8 value);
void fu_struct_ifwi_fpt_set_flags(GByteArray *st, guint8 value);
void fu_struct_ifwi_fpt_set_ticks_to_add(GByteArray *st, guint16 value);
void fu_struct_ifwi_fpt_set_tokens_to_add(GByteArray *st, guint16 value);
void fu_struct_ifwi_fpt_set_uma_size(GByteArray *st, guint32 value);
void fu_struct_ifwi_fpt_set_crc32(GByteArray *st, guint32 value);
void fu_struct_ifwi_fpt_set_fitc_major(GByteArray *st, guint16 value);
void fu_struct_ifwi_fpt_set_fitc_minor(GByteArray *st, guint16 value);
void fu_struct_ifwi_fpt_set_fitc_hotfix(GByteArray *st, guint16 value);
void fu_struct_ifwi_fpt_set_fitc_build(GByteArray *st, guint16 value);
#define FU_STRUCT_IFWI_FPT_OFFSET_HEADER_MARKER 0x0
#define FU_STRUCT_IFWI_FPT_OFFSET_NUM_OF_ENTRIES 0x4
#define FU_STRUCT_IFWI_FPT_OFFSET_HEADER_VERSION 0x8
#define FU_STRUCT_IFWI_FPT_OFFSET_ENTRY_VERSION 0x9
#define FU_STRUCT_IFWI_FPT_OFFSET_HEADER_LENGTH 0xA
#define FU_STRUCT_IFWI_FPT_OFFSET_FLAGS 0xB
#define FU_STRUCT_IFWI_FPT_OFFSET_TICKS_TO_ADD 0xC
#define FU_STRUCT_IFWI_FPT_OFFSET_TOKENS_TO_ADD 0xE
#define FU_STRUCT_IFWI_FPT_OFFSET_UMA_SIZE 0x10
#define FU_STRUCT_IFWI_FPT_OFFSET_CRC32 0x14
#define FU_STRUCT_IFWI_FPT_OFFSET_FITC_MAJOR 0x18
#define FU_STRUCT_IFWI_FPT_OFFSET_FITC_MINOR 0x1A
#define FU_STRUCT_IFWI_FPT_OFFSET_FITC_HOTFIX 0x1C
#define FU_STRUCT_IFWI_FPT_OFFSET_FITC_BUILD 0x1E
#define FU_STRUCT_IFWI_FPT_SIZE 0x20
#define FU_STRUCT_IFWI_FPT_DEFAULT_HEADER_MARKER 0x54504624
#define FU_STRUCT_IFWI_FPT_DEFAULT_HEADER_VERSION 0x20
#define FU_STRUCT_IFWI_FPT_DEFAULT_ENTRY_VERSION 0x10
#define FU_STRUCT_IFWI_FPT_DEFAULT_HEADER_LENGTH 32

GByteArray *fu_struct_ifwi_fpt_entry_new(void);
GByteArray *fu_struct_ifwi_fpt_entry_parse_bytes(GBytes *blob, gsize offset, GError **error);
guint32 fu_struct_ifwi_fpt_entry_get_partition_name(const GByteArray *st);
guint32 fu_struct_ifwi_fpt_entry_get_offset(const GByteArray *st);
guint32 fu_struct_ifwi_fpt_entry_get_length(const GByteArray *st);
guint32 fu_struct_ifwi_fpt_entry_get_partition_type(const GByteArray *st);
void fu_struct_ifwi_fpt_entry_set_partition_name(GByteArray *st, guint32 value);
void fu_struct_ifwi_fpt_entry_set_offset(GByteArray *st, guint32 value);
void fu_struct_ifwi_fpt_entry_set_length(GByteArray *st, guint32 value);
void fu_struct_ifwi_fpt_entry_set_partition_type(GByteArray *st, guint32 value);
#define FU_STRUCT_IFWI_FPT_ENTRY_OFFSET_PARTITION_NAME 0x0
#define FU_STRUCT_IFWI_FPT_ENTRY_OFFSET_OFFSET 0x8
#define FU_STRUCT_IFWI_FPT_ENTRY_OFFSET_LENGTH 0xC
#define FU_STRUCT_IFWI_FPT_ENTRY_OFFSET_PARTITION_TYPE 0x1C
#define FU_STRUCT_IFWI_FPT_ENTRY_SIZE 0x20
