ThinkingSkins - MossSolar Facade  Version 1.0
 All Classes Files Functions Variables Pages
pgmspace.h
Go to the documentation of this file.
1 /**************************************************************************/
35 /**************************************************************************/
36 
37 #ifndef delorean_pgmspace_h
38 #define delorean_pgmspace_h
39 
40 #include <inttypes.h>
41 
42 #define PROGMEM
43 #define PGM_P const char *
44 #define PSTR(str) (str)
45 
46 typedef void prog_void;
47 typedef char prog_char;
48 typedef unsigned char prog_uchar;
49 typedef int8_t prog_int8_t;
50 typedef uint8_t prog_uint8_t;
51 typedef int16_t prog_int16_t;
52 typedef uint16_t prog_uint16_t;
53 typedef int32_t prog_int32_t;
54 typedef uint32_t prog_uint32_t;
55 
56 #define strcpy_P(dest, src) strcpy((dest), (src))
57 #define strcat_P(dest, src) strcat((dest), (src))
58 #define strcmp_P(a, b) strcmp((a), (b))
59 
60 #define pgm_read_byte(addr) (*(const unsigned char *)(addr))
61 #define pgm_read_word(addr) (*(const unsigned short *)(addr))
62 #define pgm_read_dword(addr) (*(const unsigned long *)(addr))
63 #define pgm_read_float(addr) (*(const float *)(addr))
64 
65 #define pgm_read_byte_near(addr) pgm_read_byte(addr)
66 #define pgm_read_word_near(addr) pgm_read_word(addr)
67 #define pgm_read_dword_near(addr) pgm_read_dword(addr)
68 #define pgm_read_float_near(addr) pgm_read_float(addr)
69 #define pgm_read_byte_far(addr) pgm_read_byte(addr)
70 #define pgm_read_word_far(addr) pgm_read_word(addr)
71 #define pgm_read_dword_far(addr) pgm_read_dword(addr)
72 #define pgm_read_float_far(addr) pgm_read_float(addr)
73 
74 #endif