From e59d87525600f9171dcf93dd767aac9fe33c6e54 Mon Sep 17 00:00:00 2001 From: Kevin O'Connor Date: Thu, 22 Aug 2019 11:08:51 -0400 Subject: ctr: Encode integers in hex Replace the custom encoding with a hex encoding. This makes it a little easier to inspect the CTR conversions. Signed-off-by: Kevin O'Connor --- src/ctr.h | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/ctr.h b/src/ctr.h index b3c14ff1..36a7334c 100644 --- a/src/ctr.h +++ b/src/ctr.h @@ -14,17 +14,20 @@ static char __PASTE(_DECLS_, __LINE__)[] __attribute__((used)) \ __section(".compile_time_request") = (REQUEST) -#define CTR_INT(V, S) ((((uint32_t)(V) >> S) & 0x3f) + 48) +// Helper macros for encoding an integer +#define CTR_HEX(H) ((H) > 9 ? (H) - 10 + 'A' : (H) + '0') +#define CTR_INT(V, S) CTR_HEX(((uint32_t)(V) >> (S)) & 0x0f) // Declare a compile time request with an integer expression #define DECL_CTR_INT(REQUEST, VALUE) \ - static struct { char _r[sizeof(REQUEST)]; char _v[8]; } \ + static struct { char _r[sizeof(REQUEST)]; char _v[12]; } \ __PASTE(_DECLI_, __LINE__) __attribute__((used)) \ __section(".compile_time_request") = { \ REQUEST " ", { \ - (VALUE) < 0 ? '-' : '+', \ - CTR_INT((VALUE),0), CTR_INT((VALUE),6), \ - CTR_INT((VALUE),12), CTR_INT((VALUE),18), \ - CTR_INT((VALUE),24), CTR_INT((VALUE),30), 0 } } + (VALUE) < 0 ? '-' : '+', '0', 'x', \ + CTR_INT((VALUE),28), CTR_INT((VALUE),24), \ + CTR_INT((VALUE),20), CTR_INT((VALUE),16), \ + CTR_INT((VALUE),12), CTR_INT((VALUE),8), \ + CTR_INT((VALUE),4), CTR_INT((VALUE),0), 0 } } #endif // ctr.h -- cgit v1.2.3-70-g09d2