/*
* $Log$
+ * Revision 1.9 2004/07/29 22:57:09 bernie
+ * vsprintf(): Remove prototype for backwards compatibility with GCC 3.4; ssize_t: Add definition for inferior compilers.
+ *
+ * Revision 1.8 2004/07/20 23:43:39 bernie
+ * Use attribute((always_inline)) to force inlining. This fixes the much
+ * hated need of redundant prototypes for inline functions.
+ *
+ * Revision 1.7 2004/07/20 23:26:48 bernie
+ * Fix two errors introduced by previous commit.
+ *
* Revision 1.6 2004/07/20 23:12:43 bernie
- * Reverse the logic to provide defaults for undefined macros.
+ * *** empty log message ***
*
* Revision 1.5 2004/07/20 17:08:03 bernie
* Cleanup documentation
#define FORMAT(type,fmt,first) __attribute__((__format__(type, fmt, first)))
#define NORETURN __attribute__((__noreturn__))
#define UNUSED(type,arg) __attribute__((__unused__)) type arg
- #define INLINE extern inline
+ #define INLINE static inline __attribute__((__always_inline__))
#if GNUC_PREREQ(3,1)
- #define DEPRECATED __attribute__((__deprecated__))
+ #define DEPRECATED __attribute__((__deprecated__))
#endif
#if defined(__i386__)
/* Missing printf-family functions in avr-libc/stdio.h */
#include <stdarg.h>
#include <avr/pgmspace.h>
- #if !GNUC_PREREQ(3,4)
- int vsprintf(char *buf, const char *fmt, va_list ap);
- #endif
int vsprintf_P(char *buf, const char * PROGMEM fmt, va_list ap);
/* Support for harvard architectures */
#ifndef FORMAT
#define FORMAT(type,fmt,first) /* nothing */
#endif
-#ifndef
+#ifndef DEPRECATED
#define DEPRECATED /* nothing */
#endif
-#ifndef
+#ifndef UNUSED
#define UNUSED(type,arg) type arg
#endif
#ifndef REGISTER
* These should be in <sys/types.h>, but many compilers lack them.
*/
#if !(defined(size_t) || defined(_SIZE_T_DEFINED))
- #define size_t unsigned int
+ typedef unsigned int size_t;
+ typedef int ssize_t;
#endif
#if !(defined(_TIME_T_DEFINED) || defined(__time_t_defined))
typedef long time_t;