Skip to content

Commit 212dae5

Browse files
sandeepmistrycalvinatintel
authored andcommitted
Sync avr/pgmspace.h entries with SAMD core
1 parent 7bd93b3 commit 212dae5

File tree

1 file changed

+54
-3
lines changed

1 file changed

+54
-3
lines changed

cores/arduino/avr/pgmspace.h

Lines changed: 54 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,28 +41,79 @@ typedef int16_t prog_int16_t;
4141
typedef uint16_t prog_uint16_t;
4242
typedef int32_t prog_int32_t;
4343
typedef uint32_t prog_uint32_t;
44+
typedef int64_t prog_int64_t;
45+
typedef uint64_t prog_uint64_t;
4446

45-
#define memcpy_P(dest, src, num) memcpy((dest), (src), (num))
46-
#define strcpy_P(dest, src) strcpy((dest), (src))
47+
typedef const void* int_farptr_t;
48+
typedef const void* uint_farptr_t;
49+
50+
#define memchr_P(s, c, n) memchr((s), (c), (n))
51+
#define memcmp_P(s1, s2, n) memcmp((s1), (s2), (n))
52+
#define memccpy_P(dest, src, c, n) memccpy((dest), (src), (c), (n))
53+
#define memcpy_P(dest, src, n) memcpy((dest), (src), (n))
54+
#define memmem_P(haystack, haystacklen, needle, needlelen) memmem((haystack), (haystacklen), (needle), (needlelen))
55+
#define memrchr_P(s, c, n) memrchr((s), (c), (n))
4756
#define strcat_P(dest, src) strcat((dest), (src))
57+
#define strchr_P(s, c) strchr((s), (c))
58+
#define strchrnul_P(s, c) strchrnul((s), (c))
4859
#define strcmp_P(a, b) strcmp((a), (b))
60+
#define strcpy_P(dest, src) strcpy((dest), (src))
61+
#define strcasecmp_P(s1, s2) strcasecmp((s1), (s2))
62+
#define strcasestr_P(haystack, needle) strcasestr((haystack), (needle))
63+
#define strcspn_P(s, accept) strcspn((s), (accept))
64+
#define strlcat_P(s1, s2, n) strlcat((s1), (s2), (n))
65+
#define strlcpy_P(s1, s2, n) strlcpy((s1), (s2), (n))
66+
#define strlen_P(a) strlen((a))
67+
#define strnlen_P(s, n) strnlen((s), (n))
68+
#define strncmp_P(s1, s2, n) strncmp((s1), (s2), (n))
69+
#define strncasecmp_P(s1, s2, n) strncasecmp((s1), (s2), (n))
70+
#define strncat_P(s1, s2, n) strncat((s1), (s2), (n))
71+
#define strncpy_P(s1, s2, n) strncpy((s1), (s2), (n))
72+
#define strpbrk_P(s, accept) strpbrk((s), (accept))
73+
#define strrchr_P(s, c) strrchr((s), (c))
74+
#define strsep_P(sp, delim) strsep((sp), (delim))
75+
#define strspn_P(s, accept) strspn((s), (accept))
4976
#define strstr_P(a, b) strstr((a), (b))
50-
#define strlen_P(s) strlen((const char *)(s))
77+
#define strtok_P(s, delim) strtok((s), (delim))
78+
#define strtok_rP(s, delim, last) strtok((s), (delim), (last))
79+
80+
#define strlen_PF(a) strlen((a))
81+
#define strnlen_PF(src, len) strnlen((src), (len))
82+
#define memcpy_PF(dest, src, len) memcpy((dest), (src), (len))
83+
#define strcpy_PF(dest, src) strcpy((dest), (src))
84+
#define strncpy_PF(dest, src, len) strncpy((dest), (src), (len))
85+
#define strcat_PF(dest, src) strcat((dest), (src))
86+
#define strlcat_PF(dest, src, len) strlcat((dest), (src), (len))
87+
#define strncat_PF(dest, src, len) strncat((dest), (src), (len))
88+
#define strcmp_PF(s1, s2) strcmp((s1), (s2))
89+
#define strncmp_PF(s1, s2, n) strncmp((s1), (s2), (n))
90+
#define strcasecmp_PF(s1, s2) strcasecmp((s1), (s2))
91+
#define strncasecmp_PF(s1, s2, n) strncasecmp((s1), (s2), (n))
92+
#define strstr_PF(s1, s2) strstr((s1), (s2))
93+
#define strlcpy_PF(dest, src, n) strlcpy((dest), (src), (n))
94+
#define memcmp_PF(s1, s2, n) memcmp((s1), (s2), (n))
95+
5196
#define sprintf_P(s, f, ...) sprintf((s), (f), __VA_ARGS__)
5297

5398
#define pgm_read_byte(addr) (*(const unsigned char *)(addr))
5499
#define pgm_read_word(addr) (*(const unsigned short *)(addr))
55100
#define pgm_read_dword(addr) (*(const unsigned long *)(addr))
56101
#define pgm_read_float(addr) (*(const float *)(addr))
102+
#define pgm_read_ptr(addr) (*(const void *)(addr))
57103

58104
#define pgm_read_byte_near(addr) pgm_read_byte(addr)
59105
#define pgm_read_word_near(addr) pgm_read_word(addr)
60106
#define pgm_read_dword_near(addr) pgm_read_dword(addr)
61107
#define pgm_read_float_near(addr) pgm_read_float(addr)
108+
#define pgm_read_ptr_near(addr) pgm_read_ptr(addr)
109+
62110
#define pgm_read_byte_far(addr) pgm_read_byte(addr)
63111
#define pgm_read_word_far(addr) pgm_read_word(addr)
64112
#define pgm_read_dword_far(addr) pgm_read_dword(addr)
65113
#define pgm_read_float_far(addr) pgm_read_float(addr)
114+
#define pgm_read_ptr_far(addr) pgm_read_ptr(addr)
115+
116+
#define pgm_get_far_address(addr) (&(addr))
66117

67118
#endif // __PGMSPACE_H_
68119

0 commit comments

Comments
 (0)