X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=cfg%2Fcompiler.h;h=a303dc776115cc0ab9640d4eb208bfe366c950ad;hb=af9cba1c451a41879ceddeab818bc265fb4923ff;hp=96745521fe864280d5f9db85879db290a4bd3e5a;hpb=5472d295ed805f1e517e6fcd3419c853126042b8;p=bertos.git diff --git a/cfg/compiler.h b/cfg/compiler.h index 96745521..a303dc77 100644 --- a/cfg/compiler.h +++ b/cfg/compiler.h @@ -37,8 +37,8 @@ * \author Bernardo Innocenti */ -#ifndef DEVLIB_COMPILER_H -#define DEVLIB_COMPILER_H +#ifndef BERTOS_COMPILER_H +#define BERTOS_COMPILER_H #include @@ -181,6 +181,11 @@ #define RESTRICT __restrict__ #define MUST_CHECK __attribute__((warn_unused_result)) #define PACKED __attribute__((packed)) + /** + * Force compiler to realod context variable. + */ + #define MEMORY_BARRIER asm volatile ("" : : : "memory") + #if GNUC_PREREQ(3,1) #define DEPRECATED __attribute__((__deprecated__)) #endif @@ -211,6 +216,8 @@ #pragma GCC poison cin cout cerr clog #endif + + #elif defined(__MWERKS__) /* Compiler features */ @@ -313,6 +320,10 @@ #ifndef PACKED #define PACKED /* nothing */ #endif +#ifndef MEMORY_BARRIER +#define MEMORY_BARRIER /* nothing */ +#warning No memory barrier defined for select compiler. If you use the kernel check it. +#endif /* Misc definitions */ @@ -323,7 +334,6 @@ #define EOF (-1) #endif - /* Support for hybrid C/C++ applications. */ #ifdef __cplusplus #define EXTERN_C extern "C" @@ -515,4 +525,4 @@ typedef unsigned char page_t; /**< Type for banked memory pages. */ do { (void)(&(var) == (type *)0); } while(0) #endif -#endif /* DEVLIB_COMPILER_H */ +#endif /* BERTOS_COMPILER_H */