/*#*
*#* $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.
*#*
#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
#define COMPILER_TYPEOF 1
#define COMPILER_STATEMENT_EXPRESSIONS 1
+ #define typeof __typeof__
+
#include <stdint.h>
#include <stddef.h>
#include <stdbool.h>
#include <stdint.h>
#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
/*
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. */