Go to the documentation of this file.
24 #define isFlashPtr(ptr) ((uint32_t)(ptr) >= SOC_DROM_LOW && (uint32_t)(ptr) < SOC_DROM_HIGH)
26 #define PROGMEM STORE_ATTR ICACHE_RODATA_ATTR
27 #define PROGMEM_PSTR PROGMEM
28 #define PSTR(str) (str)
30 #define PGM_P const char*
31 #define PGM_VOID_P const void*
38 #define pgm_read_byte(addr) (*(const unsigned char*)(addr))
39 #define pgm_read_word(addr) \
41 uint32_t tmp_addr = (uint32_t)(addr); \
42 *(const uint16_t*)tmp_addr; \
44 #define pgm_read_dword(addr) \
46 uint32_t tmp_addr = (uint32_t)(addr); \
47 *(const uint32_t*)tmp_addr; \
49 #define pgm_read_float(addr) \
51 uint32_t tmp_addr = (uint32_t)(addr); \
52 *(const float*)tmp_addr; \
57 #define pgm_read_byte_near(addr) pgm_read_byte(addr)
58 #define pgm_read_word_near(addr) pgm_read_word(addr)
59 #define pgm_read_dword_near(addr) pgm_read_dword(addr)
60 #define pgm_read_float_near(addr) pgm_read_float(addr)
61 #define pgm_read_byte_far(addr) pgm_read_byte(addr)
62 #define pgm_read_word_far(addr) pgm_read_word(addr)
63 #define pgm_read_dword_far(addr) pgm_read_dword(addr)
64 #define pgm_read_float_far(addr) pgm_read_float(addr)
66 #define memcpy_P(dest, src, num) memcpy(dest, src, num)
67 #define memcmp_P(a1, b1, len) memcmp(a1, b1, len)
68 #define strlen_P(a) strlen(a)
69 #define strcpy_P(dest, src) strcpy(dest, src)
70 #define strncpy_P(dest, src, size) strncpy(dest, src, size)
71 #define strcmp_P(a, b) strcmp(a, b)
72 #define strncmp_P(str1, str2_P, size) strncmp(str1, str2_P, size)
73 #define strcasecmp_P(a, b) strcasecmp(a, b)
74 #define strcat_P(dest, src) strcat(dest, src)
75 #define strstr_P(a, b) strstr(a, b)
76 #define sprintf_P(s, f, ...) m_snprintf(s, 1024, f, ##__VA_ARGS__)