@@ -41,28 +41,79 @@ typedef int16_t prog_int16_t;
41
41
typedef uint16_t prog_uint16_t ;
42
42
typedef int32_t prog_int32_t ;
43
43
typedef uint32_t prog_uint32_t ;
44
+ typedef int64_t prog_int64_t ;
45
+ typedef uint64_t prog_uint64_t ;
44
46
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))
47
56
#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))
48
59
#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))
49
76
#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
+
51
96
#define sprintf_P (s , f , ...) sprintf((s), (f), __VA_ARGS__)
52
97
53
98
#define pgm_read_byte (addr ) (*(const unsigned char *)(addr))
54
99
#define pgm_read_word (addr ) (*(const unsigned short *)(addr))
55
100
#define pgm_read_dword (addr ) (*(const unsigned long *)(addr))
56
101
#define pgm_read_float (addr ) (*(const float *)(addr))
102
+ #define pgm_read_ptr (addr ) (*(const void *)(addr))
57
103
58
104
#define pgm_read_byte_near (addr ) pgm_read_byte(addr)
59
105
#define pgm_read_word_near (addr ) pgm_read_word(addr)
60
106
#define pgm_read_dword_near (addr ) pgm_read_dword(addr)
61
107
#define pgm_read_float_near (addr ) pgm_read_float(addr)
108
+ #define pgm_read_ptr_near (addr ) pgm_read_ptr(addr)
109
+
62
110
#define pgm_read_byte_far (addr ) pgm_read_byte(addr)
63
111
#define pgm_read_word_far (addr ) pgm_read_word(addr)
64
112
#define pgm_read_dword_far (addr ) pgm_read_dword(addr)
65
113
#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))
66
117
67
118
#endif // __PGMSPACE_H_
68
119
0 commit comments