aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--platforms/eeprom.h11
1 files changed, 8 insertions, 3 deletions
diff --git a/platforms/eeprom.h b/platforms/eeprom.h
index 8e69eecc4c..067fa01616 100644
--- a/platforms/eeprom.h
+++ b/platforms/eeprom.h
@@ -22,9 +22,14 @@ void eeprom_update_dword(uint32_t *__p, uint32_t __value);
void eeprom_update_block(const void *__src, void *__dst, size_t __n);
#endif
-static inline void eeprom_write_qword(uint64_t *__p, uint64_t __value) {
- eeprom_update_block(&__value, __p, sizeof(uint64_t));
-}
+// While newer avr-libc versions may have an implementation
+// use preprocessor as to not cause conflicts
+#undef eeprom_write_qword
+#define eeprom_write_qword(__p, __value) \
+ do { \
+ uint64_t tmp = __value; \
+ eeprom_update_block(&tmp, __p, sizeof(uint64_t)); \
+ } while (0)
#if defined(EEPROM_CUSTOM)
# ifndef EEPROM_SIZE