Fix naming conventions.
[bertos.git] / cfg / compiler.h
index 6eaf1482385ee71cf0c11ea78b470ffa246b6328..028ef3ad57fafaeabedba505713993b3e18836de 100755 (executable)
 
 /*#*
  *#* $Log$
+ *#* Revision 1.19  2006/04/11 00:07:33  bernie
+ *#* Implemenent MF_SAVESEL flag.
+ *#*
+ *#* Revision 1.18  2006/03/22 13:34:34  bernie
+ *#* MSVC support.
+ *#*
+ *#* Revision 1.17  2006/03/22 09:48:35  bernie
+ *#* Formatting.
+ *#*
+ *#* Revision 1.16  2006/03/20 17:48:09  bernie
+ *#* Fix for avr-libc; INTERRUPT(): Remove macro.
+ *#*
  *#* Revision 1.15  2006/03/13 02:06:25  bernie
  *#* containerof(): New macro.
  *#*
        /* MSVC doesn't support C99's __func__, but has a similar extension. */
        #define __func__ __FUNCTION__
 
+       /* MSVC doesn't support C99's inline keyword */
+       #ifndef __cplusplus
+               #define INLINE __inline
+       #endif
+
 #elif defined(__GNUC__)
 
        /* Compiler features */
        #include <stddef.h>
        #include <stdint.h>
        #include <stdbool.h>
+       #if !CPU_AVR
        #include <sys/types.h> /* for ssize_t */
+       #endif
 
        #ifndef __cplusplus
                /*
 #ifndef REGISTER
 #define REGISTER               /* nothing */
 #endif
-#ifndef INTERRUPT
-#define INTERRUPT(x)           ERROR_NOT_IMPLEMENTED
-#endif
 #ifndef LIKELY
 #define LIKELY(x)              x
 #endif
        #define EXTERN_C        extern "C"
        #define EXTERN_C_BEGIN  extern "C" {
        #define EXTERN_C_END    }
-       #define EXTERN_CONST    extern const
+       #define EXTERN_CONST    extern const
+       #define CONST_CAST(TYPE,EXPR)   (const_cast<TYPE>(EXPR))
 #else
        #define EXTERN_C        extern
        #define EXTERN_C_BEGIN  /* nothing */
        #define EXTERN_C_END    /* nothing */
-       #define EXTERN_CONST    const
+       #define EXTERN_CONST    const
+       #define CONST_CAST(TYPE,EXPR)   ((TYPE)(EXPR)) /* FIXME: How can we suppress the warning in C? */
 #endif