Skip to content

Commit 9a2b75e

Browse files
authored
prevent early macro expansion in PICOBIN_..._AS_BITS() macros (#2068)
1 parent 74db3c2 commit 9a2b75e

File tree

1 file changed

+6
-5
lines changed
  • src/common/boot_picobin_headers/include/boot

1 file changed

+6
-5
lines changed

src/common/boot_picobin_headers/include/boot/picobin.h

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,34 +52,35 @@
5252

5353
// ----
5454

55+
#define _PICOBIN_INDEX_TO_BITS(y, x) (y ## x << y ## _LSB)
5556
#define PICOBIN_INDEX_TO_BITS(y, x) (y ## _ ## x << y ## _LSB)
5657

5758
#define PICOBIN_IMAGE_TYPE_IMAGE_TYPE_LSB _u(0)
5859
#define PICOBIN_IMAGE_TYPE_IMAGE_TYPE_BITS _u(0x000f)
5960
#define PICOBIN_IMAGE_TYPE_IMAGE_TYPE_INVALID _u(0x0)
6061
#define PICOBIN_IMAGE_TYPE_IMAGE_TYPE_EXE _u(0x1)
6162
#define PICOBIN_IMAGE_TYPE_IMAGE_TYPE_DATA _u(0x2)
62-
#define PICOBIN_IMAGE_TYPE_IMAGE_TYPE_AS_BITS(x) PICOBIN_INDEX_TO_BITS(PICOBIN_IMAGE_TYPE_IMAGE_TYPE, x)
63+
#define PICOBIN_IMAGE_TYPE_IMAGE_TYPE_AS_BITS(x) _PICOBIN_INDEX_TO_BITS(PICOBIN_IMAGE_TYPE_IMAGE_TYPE, _ ## x)
6364

6465
#define PICOBIN_IMAGE_TYPE_EXE_SECURITY_LSB _u(4)
6566
#define PICOBIN_IMAGE_TYPE_EXE_SECURITY_BITS _u(0x0030)
6667
#define PICOBIN_IMAGE_TYPE_EXE_SECURITY_UNSPECIFIED _u(0x0)
6768
#define PICOBIN_IMAGE_TYPE_EXE_SECURITY_NS _u(0x1)
6869
#define PICOBIN_IMAGE_TYPE_EXE_SECURITY_S _u(0x2)
69-
#define PICOBIN_IMAGE_TYPE_EXE_SECURITY_AS_BITS(x) PICOBIN_INDEX_TO_BITS(PICOBIN_IMAGE_TYPE_EXE_SECURITY, x)
70+
#define PICOBIN_IMAGE_TYPE_EXE_SECURITY_AS_BITS(x) _PICOBIN_INDEX_TO_BITS(PICOBIN_IMAGE_TYPE_EXE_SECURITY, _ ## x)
7071

7172
#define PICOBIN_IMAGE_TYPE_EXE_CPU_LSB _u(8)
7273
#define PICOBIN_IMAGE_TYPE_EXE_CPU_BITS _u(0x0700)
7374
#define PICOBIN_IMAGE_TYPE_EXE_CPU_ARM _u(0)
7475
#define PICOBIN_IMAGE_TYPE_EXE_CPU_RISCV _u(1)
7576
#define PICOBIN_IMAGE_TYPE_EXE_CPU_VARMULET _u(2)
76-
#define PICOBIN_IMAGE_TYPE_EXE_CPU_AS_BITS(x) PICOBIN_INDEX_TO_BITS(PICOBIN_IMAGE_TYPE_EXE_CPU, x)
77+
#define PICOBIN_IMAGE_TYPE_EXE_CPU_AS_BITS(x) _PICOBIN_INDEX_TO_BITS(PICOBIN_IMAGE_TYPE_EXE_CPU, _ ## x)
7778

7879
#define PICOBIN_IMAGE_TYPE_EXE_CHIP_LSB _u(12)
7980
#define PICOBIN_IMAGE_TYPE_EXE_CHIP_BITS _u(0x7000)
8081
#define PICOBIN_IMAGE_TYPE_EXE_CHIP_RP2040 _u(0)
8182
#define PICOBIN_IMAGE_TYPE_EXE_CHIP_RP2350 _u(1)
82-
#define PICOBIN_IMAGE_TYPE_EXE_CHIP_AS_BITS(x) PICOBIN_INDEX_TO_BITS(PICOBIN_IMAGE_TYPE_EXE_CHIP, x)
83+
#define PICOBIN_IMAGE_TYPE_EXE_CHIP_AS_BITS(x) _PICOBIN_INDEX_TO_BITS(PICOBIN_IMAGE_TYPE_EXE_CHIP, _ ## x)
8384

8485
#define PICOBIN_IMAGE_TYPE_EXE_TBYB_BITS _u(0x8000)
8586

@@ -135,7 +136,7 @@
135136
#define PICOBIN_PARTITION_FLAGS_LINK_TYPE_NONE _u(0)
136137
#define PICOBIN_PARTITION_FLAGS_LINK_TYPE_A_PARTITION _u(1)
137138
#define PICOBIN_PARTITION_FLAGS_LINK_TYPE_OWNER_PARTITION _u(2)
138-
#define PICOBIN_PARTITION_FLAGS_LINK_TYPE_AS_BITS(x) PICOBIN_INDEX_TO_BITS(PICOBIN_PARTITION_FLAGS_LINK_TYPE, x)
139+
#define PICOBIN_PARTITION_FLAGS_LINK_TYPE_AS_BITS(x) _PICOBIN_INDEX_TO_BITS(PICOBIN_PARTITION_FLAGS_LINK_TYPE, _ ## x)
139140

140141

141142
#define PICOBIN_HASH_SHA256 _u(0x01)

0 commit comments

Comments
 (0)