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

GByteArray *fu_struct_uf2_new(void);
GByteArray *fu_struct_uf2_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error);
guint32 fu_struct_uf2_get_flags(const GByteArray *st);
guint32 fu_struct_uf2_get_target_addr(const GByteArray *st);
guint32 fu_struct_uf2_get_payload_size(const GByteArray *st);
guint32 fu_struct_uf2_get_block_no(const GByteArray *st);
guint32 fu_struct_uf2_get_num_blocks(const GByteArray *st);
guint32 fu_struct_uf2_get_family_id(const GByteArray *st);
const guint8 *fu_struct_uf2_get_data(const GByteArray *st, gsize *bufsz);
void fu_struct_uf2_set_flags(GByteArray *st, guint32 value);
void fu_struct_uf2_set_target_addr(GByteArray *st, guint32 value);
void fu_struct_uf2_set_payload_size(GByteArray *st, guint32 value);
void fu_struct_uf2_set_block_no(GByteArray *st, guint32 value);
void fu_struct_uf2_set_num_blocks(GByteArray *st, guint32 value);
void fu_struct_uf2_set_family_id(GByteArray *st, guint32 value);
gboolean fu_struct_uf2_set_data(GByteArray *st, const guint8 *buf, gsize bufsz, GError **error);
#define FU_STRUCT_UF2_OFFSET_MAGIC0 0x0
#define FU_STRUCT_UF2_OFFSET_MAGIC1 0x4
#define FU_STRUCT_UF2_OFFSET_FLAGS 0x8
#define FU_STRUCT_UF2_OFFSET_TARGET_ADDR 0xC
#define FU_STRUCT_UF2_OFFSET_PAYLOAD_SIZE 0x10
#define FU_STRUCT_UF2_OFFSET_BLOCK_NO 0x14
#define FU_STRUCT_UF2_OFFSET_NUM_BLOCKS 0x18
#define FU_STRUCT_UF2_OFFSET_FAMILY_ID 0x1C
#define FU_STRUCT_UF2_OFFSET_DATA 0x20
#define FU_STRUCT_UF2_OFFSET_MAGIC_END 0x1FC
#define FU_STRUCT_UF2_SIZE_DATA 0x1DC
#define FU_STRUCT_UF2_SIZE 0x200
#define FU_STRUCT_UF2_DEFAULT_MAGIC0 0x0A324655
#define FU_STRUCT_UF2_DEFAULT_MAGIC1 0x9E5D5157
#define FU_STRUCT_UF2_DEFAULT_MAGIC_END 0x0AB16F30
