X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=compiler.h;h=3f2d84848f06c5e94a2e36d7f0e6e3e9d2f050f4;hb=031d131eaf25e141e933eecd05070e79050e5217;hp=3eb3f6a6ea4a76c28dcae08714d616adaab35444;hpb=588cab3f6529b08952f17eebcb16a2a33e43e996;p=bertos.git diff --git a/compiler.h b/compiler.h index 3eb3f6a6..3f2d8484 100755 --- a/compiler.h +++ b/compiler.h @@ -14,6 +14,15 @@ /*#* *#* $Log$ + *#* Revision 1.41 2005/01/22 04:19:22 bernie + *#* MTIME_INFINITE: New constant. + *#* + *#* Revision 1.40 2005/01/20 18:46:04 aleph + *#* Add progmem datatypes; PSTR() definition. + *#* + *#* Revision 1.39 2005/01/08 08:49:39 bernie + *#* Define PROGMEM on AVR only when not including pgmspace.h. + *#* *#* Revision 1.38 2004/12/31 16:41:52 bernie *#* PROGMEM: Define to nothing for non-Harvard processors. *#* @@ -248,8 +257,11 @@ #define PGM_READ_CHAR(s) pgm_read_byte(s) #define PGM_FUNC(x) x ## _P #define PGM_ATTR PROGMEM + #else + /* We still need this for prototypes */ + #define PROGMEM __attribute__((__progmem__)) + #define PSTR(s) ({static char __c[] PROGMEM = (s); __c;}) #endif - #define PROGMEM __attribute__((__progmem__)) #endif @@ -271,6 +283,8 @@ #define COMPILER_TYPEOF 1 #define COMPILER_STATEMENT_EXPRESSIONS 1 + #define typeof __typeof__ + #include #include #include @@ -424,6 +438,17 @@ #include #endif +/*! + * \name Types for variables stored in program memory (harvard processors). + * \{ + */ +typedef PROGMEM int8_t pgm_int8_t; +typedef PROGMEM uint8_t pgm_uint8_t; +typedef PROGMEM int16_t pgm_int16_t; +typedef PROGMEM uint16_t pgm_uint16_t; +typedef PROGMEM int32_t pgm_int32_t; +typedef PROGMEM uint32_t pgm_uint32_t; +/*\}*/ #if CPU_AVR_ATMEGA8 /* @@ -434,11 +459,13 @@ typedef int16_t utime_t; /*!< Type for time expressed in microseconds. */ #define SIZEOF_MTIME_T (16 / CPU_BITS_PER_CHAR) #define SIZEOF_UTIME_T (16 / CPU_BITS_PER_CHAR) + #define MTIME_INFINITE 0x7FFFL #else typedef int32_t mtime_t; /*!< Type for time expressed in milliseconds. */ typedef int32_t utime_t; /*!< Type for time expressed in microseconds. */ #define SIZEOF_MTIME_T (32 / CPU_BITS_PER_CHAR) #define SIZEOF_UTIME_T (32 / CPU_BITS_PER_CHAR) + #define MTIME_INFINITE 0x7FFFFFFFL #endif /*! Bulk storage large enough for both pointers or integers. */