+
+#if !CPU_HARVARD
+ #define pgm_read8(a) (*(const uint8_t *)(a))
+ #define pgm_read16(a) (*(const uint16_t *)(a))
+ #define pgm_read32(a) (*(const uint32_t *)(a))
+#endif
+
+#define pgm_read_char(a) pgm_read8(a)
+#define pgm_read_uint16_t(addr) pgm_read16(addr)
+
+
+#if SIZEOF_INT == 2
+ #define pgm_read_int(addr) ((int)pgm_read16(addr))
+#elif SIZEOF_INT == 4
+ #define pgm_read_int(addr) ((int)pgm_read32(addr))
+#else
+ #error Missing support for CPU word size!
+#endif
+