7#ifndef _PICO_BINARY_INFO_STRUCTURE_H
8#define _PICO_BINARY_INFO_STRUCTURE_H
21#define __packed __attribute__((packed))
26#define BINARY_INFO_TYPE_RAW_DATA 1
27#define BINARY_INFO_TYPE_SIZED_DATA 2
28#define BINARY_INFO_TYPE_BINARY_INFO_LIST_ZERO_TERMINATED 3
29#define BINARY_INFO_TYPE_BSON 4
30#define BINARY_INFO_TYPE_ID_AND_INT 5
31#define BINARY_INFO_TYPE_ID_AND_STRING 6
33#define BINARY_INFO_TYPE_BLOCK_DEVICE 7
34#define BINARY_INFO_TYPE_PINS_WITH_FUNC 8
35#define BINARY_INFO_TYPE_PINS_WITH_NAME 9
36#define BINARY_INFO_TYPE_NAMED_GROUP 10
37#define BINARY_INFO_TYPE_PTR_INT32_WITH_NAME 11
38#define BINARY_INFO_TYPE_PTR_STRING_WITH_NAME 12
39#define BINARY_INFO_TYPE_PINS64_WITH_FUNC 13
40#define BINARY_INFO_TYPE_PINS64_WITH_NAME 14
45#define BINARY_INFO_MAKE_TAG(c1, c2) ((((uint)c2&0xffu)<<8u)|((uint)c1&0xffu))
48#define BINARY_INFO_TAG_RASPBERRY_PI BINARY_INFO_MAKE_TAG('R','P')
50#define BINARY_INFO_ID_RP_PROGRAM_NAME 0x02031c86
51#define BINARY_INFO_ID_RP_PROGRAM_VERSION_STRING 0x11a9bc3a
52#define BINARY_INFO_ID_RP_PROGRAM_BUILD_DATE_STRING 0x9da22254
53#define BINARY_INFO_ID_RP_BINARY_END 0x68f465de
54#define BINARY_INFO_ID_RP_PROGRAM_URL 0x1856239a
55#define BINARY_INFO_ID_RP_PROGRAM_DESCRIPTION 0xb6a07c19
56#define BINARY_INFO_ID_RP_PROGRAM_FEATURE 0xa1f4b453
57#define BINARY_INFO_ID_RP_PROGRAM_BUILD_ATTRIBUTE 0x4275f0d3
58#define BINARY_INFO_ID_RP_SDK_VERSION 0x5360b3ab
59#define BINARY_INFO_ID_RP_PICO_BOARD 0xb63cffbb
60#define BINARY_INFO_ID_RP_BOOT2_NAME 0x7f8882e1
63#define bi_ptr_of(x) x *
65#define bi_ptr_of(x) uint32_t
97 bi_ptr_of(
const char) value;
103 bi_ptr_of(
const int) value;
104 bi_ptr_of(
const char) label;
110 bi_ptr_of(
const char) value;
111 bi_ptr_of(
const char) label;
117 bi_ptr_of(
const char) name;
124#define BI_PINS_ENCODING_RANGE 1
125#define BI_PINS_ENCODING_MULTI 2
131 uint32_t pin_encoding;
138 uint64_t pin_encoding;
144 bi_ptr_of(
const char) label;
150 bi_ptr_of(
const char) label;
153#define BI_NAMED_GROUP_SHOW_IF_EMPTY 0x0001
154#define BI_NAMED_GROUP_SEPARATE_COMMAS 0x0002
155#define BI_NAMED_GROUP_SORT_ALPHA 0x0004
156#define BI_NAMED_GROUP_ADVANCED 0x0008
164 bi_ptr_of(
const char) label;
168 BINARY_INFO_BLOCK_DEV_FLAG_READ = 1 << 0,
169 BINARY_INFO_BLOCK_DEV_FLAG_WRITE = 1 << 1,
170 BINARY_INFO_BLOCK_DEV_FLAG_REFORMAT = 1 << 2,
172 BINARY_INFO_BLOCK_DEV_FLAG_PT_UNKNOWN = 0 << 4,
173 BINARY_INFO_BLOCK_DEV_FLAG_PT_MBR = 1 << 4,
174 BINARY_INFO_BLOCK_DEV_FLAG_PT_GPT = 2 << 4,
175 BINARY_INFO_BLOCK_DEV_FLAG_PT_NONE = 3 << 4,
Definition: structure.h:115
Definition: structure.h:67
Definition: structure.h:88
Definition: structure.h:94
Definition: structure.h:83
Definition: structure.h:158
Definition: structure.h:134
Definition: structure.h:147
Definition: structure.h:127
Definition: structure.h:141
Definition: structure.h:100
Definition: structure.h:107
Definition: structure.h:72
Definition: structure.h:77