aboutsummaryrefslogtreecommitdiffstats
path: root/src/ctr.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/ctr.h')
-rw-r--r--src/ctr.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/ctr.h b/src/ctr.h
index 3396644c..959cef45 100644
--- a/src/ctr.h
+++ b/src/ctr.h
@@ -14,4 +14,17 @@
static char __PASTE(_DECLS_, __LINE__)[] __attribute__((used)) \
__section(".compile_time_request") = (REQUEST)
+#define CTR_INT(V, S) ((((uint32_t)(V) >> S) & 0x3f) + 48)
+
+// Declare a compile time request with an integer expression
+#define DECL_CTR_INT(REQUEST, VALUE) \
+ static struct { char _r[sizeof(REQUEST)]; char _v[8]; } \
+ __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 } }
+
#endif // ctr.h