Skip to content

Commit 7edee22

Browse files
committed
Changed default_family to be registered at new
1 parent ce6dda8 commit 7edee22

File tree

3 files changed

+28
-31
lines changed

3 files changed

+28
-31
lines changed

flash/partition_info/partition_info.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -155,8 +155,7 @@ int main() {
155155
printf("the partition table is empty\n");
156156
}
157157

158-
uf2_family_ids_t *family_ids = uf2_family_ids_new();
159-
uf2_family_ids_add_default_families(family_ids, pt.flags_and_permissions);
158+
uf2_family_ids_t *family_ids = uf2_family_ids_new(pt.flags_and_permissions);
160159
char *str_family_ids = uf2_family_ids_join(family_ids, ", ");
161160
printf("un-partitioned_space: S(%s%s) NSBOOT(%s%s) NS(%s%s) uf2 { %s }\n",
162161
(pt.flags_and_permissions & PICOBIN_PARTITION_PERMISSION_S_R_BITS ? "r" : ""),
@@ -193,8 +192,7 @@ int main() {
193192
}
194193

195194
// print UF2 family ID
196-
family_ids = uf2_family_ids_new();
197-
uf2_family_ids_add_default_families(family_ids, p.flags_and_permissions);
195+
family_ids = uf2_family_ids_new(p.flags_and_permissions);
198196
for (size_t i = 0; i < p.extra_family_id_count; i++) {
199197
uf2_family_ids_add_extra_family_id(family_ids, p.extra_family_ids[i]);
200198
}

flash/partition_info/uf2_family_ids.c

Lines changed: 25 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,7 @@
22

33
#define UF2_FAMILY_ID_HEX_SIZE (2 + 8 * 2 + 1)
44

5-
uf2_family_ids_t *uf2_family_ids_new(void) {
6-
uf2_family_ids_t *ids = malloc(sizeof(uf2_family_ids_t));
7-
ids->count = 0;
8-
ids->items = NULL;
9-
return ids;
10-
}
11-
12-
void uf2_family_ids_add(uf2_family_ids_t *ids, const char *str) {
5+
static void _add(uf2_family_ids_t *ids, const char *str) {
136
ids->items = realloc(ids->items, (ids->count + 1) * sizeof(char *));
147
ids->items[ids->count] = strdup(str);
158
if (ids->items[ids->count] == NULL) {
@@ -19,6 +12,29 @@ void uf2_family_ids_add(uf2_family_ids_t *ids, const char *str) {
1912
ids->count++;
2013
}
2114

15+
static void _add_default_families(uf2_family_ids_t *ids, uint32_t flags) {
16+
if (flags & PICOBIN_PARTITION_FLAGS_ACCEPTS_DEFAULT_FAMILY_ABSOLUTE_BITS)
17+
_add(ids, "absolute");
18+
if (flags & PICOBIN_PARTITION_FLAGS_ACCEPTS_DEFAULT_FAMILY_RP2040_BITS)
19+
_add(ids, "rp2040");
20+
if (flags & PICOBIN_PARTITION_FLAGS_ACCEPTS_DEFAULT_FAMILY_RP2350_ARM_S_BITS)
21+
_add(ids, "rp2350-arm-s");
22+
if (flags & PICOBIN_PARTITION_FLAGS_ACCEPTS_DEFAULT_FAMILY_RP2350_ARM_NS_BITS)
23+
_add(ids, "rp2350-arm-ns");
24+
if (flags & PICOBIN_PARTITION_FLAGS_ACCEPTS_DEFAULT_FAMILY_RP2350_RISCV_BITS)
25+
_add(ids, "rp2350-riscv");
26+
if (flags & PICOBIN_PARTITION_FLAGS_ACCEPTS_DEFAULT_FAMILY_DATA_BITS)
27+
_add(ids, "data");
28+
}
29+
30+
uf2_family_ids_t *uf2_family_ids_new(uint32_t flags) {
31+
uf2_family_ids_t *ids = malloc(sizeof(uf2_family_ids_t));
32+
ids->count = 0;
33+
ids->items = NULL;
34+
_add_default_families(ids, flags);
35+
return ids;
36+
}
37+
2238
char *uf2_family_ids_join(const uf2_family_ids_t *ids, const char *sep) {
2339
size_t total_length = 0;
2440
size_t sep_length = strlen(sep);
@@ -53,23 +69,8 @@ void uf2_family_ids_free(uf2_family_ids_t *ids) {
5369
free(ids);
5470
}
5571

56-
void uf2_family_ids_add_default_families(uf2_family_ids_t *ids, uint32_t flags) {
57-
if (flags & PICOBIN_PARTITION_FLAGS_ACCEPTS_DEFAULT_FAMILY_ABSOLUTE_BITS)
58-
uf2_family_ids_add(ids, "absolute");
59-
if (flags & PICOBIN_PARTITION_FLAGS_ACCEPTS_DEFAULT_FAMILY_RP2040_BITS)
60-
uf2_family_ids_add(ids, "rp2040");
61-
if (flags & PICOBIN_PARTITION_FLAGS_ACCEPTS_DEFAULT_FAMILY_RP2350_ARM_S_BITS)
62-
uf2_family_ids_add(ids, "rp2350-arm-s");
63-
if (flags & PICOBIN_PARTITION_FLAGS_ACCEPTS_DEFAULT_FAMILY_RP2350_ARM_NS_BITS)
64-
uf2_family_ids_add(ids, "rp2350-arm-ns");
65-
if (flags & PICOBIN_PARTITION_FLAGS_ACCEPTS_DEFAULT_FAMILY_RP2350_RISCV_BITS)
66-
uf2_family_ids_add(ids, "rp2350-riscv");
67-
if (flags & PICOBIN_PARTITION_FLAGS_ACCEPTS_DEFAULT_FAMILY_DATA_BITS)
68-
uf2_family_ids_add(ids, "data");
69-
}
70-
7172
void uf2_family_ids_add_extra_family_id(uf2_family_ids_t *ids, uint32_t family_id) {
7273
char hex_id[UF2_FAMILY_ID_HEX_SIZE];
7374
sprintf(hex_id, "0x%08x", family_id);
74-
uf2_family_ids_add(ids, hex_id);
75+
_add(ids, hex_id);
7576
}

flash/partition_info/uf2_family_ids.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,8 @@ typedef struct {
1414
} uf2_family_ids_t;
1515

1616

17-
uf2_family_ids_t *uf2_family_ids_new(void);
18-
void uf2_family_ids_add(uf2_family_ids_t *ids, const char *str);
17+
uf2_family_ids_t *uf2_family_ids_new(uint32_t flags);
1918
char *uf2_family_ids_join(const uf2_family_ids_t *ids, const char *sep);
2019
void uf2_family_ids_free(uf2_family_ids_t *ids);
2120

22-
void uf2_family_ids_add_default_families(uf2_family_ids_t *ids, uint32_t flags);
2321
void uf2_family_ids_add_extra_family_id(uf2_family_ids_t *ids, uint32_t family_id);

0 commit comments

Comments
 (0)