Contiki-NG
|
Default definitions of C compiler quirk work-arounds. More...
#include "contiki.h"
#include "sys/cc-gcc.h"
Go to the source code of this file.
Macros | |
#define | CC_REGISTER_ARG |
Configure if the C compiler supports the "register" keyword for function arguments. | |
#define | CC_FUNCTION_POINTER_ARGS 0 |
Configure if the C compiler supports the arguments for function pointers. | |
#define | CC_CONST_FUNCTION const |
Configure if the C compiler have problems with const function pointers. | |
#define | CC_UNSIGNED_CHAR_BUGS 0 |
Configure work-around for unsigned char bugs with sdcc. | |
#define | CC_DOUBLE_HASH 0 |
Configure if C compiler supports double hash marks in C macros. | |
#define | CC_ASSIGN_AGGREGATE(dest, src) *dest = *src |
Configure if the C compiler supports the assignment of struct value. | |
#define | CC_ACCESS_NOW(type, variable) (*(volatile type *)&(variable)) |
This macro ensures that the access to a non-volatile variable can not be reordered or optimized by the compiler. More... | |
#define | CC_CONCAT(s1, s2) CC_CONCAT2(s1, s2) |
A C preprocessing macro for concatenating two preprocessor tokens. More... | |
#define | CC_CONCAT3(s1, s2, s3) s1##s2##s3 |
A C preprocessing macro for concatenating three preprocessor tokens. | |
Default definitions of C compiler quirk work-arounds.
This file is used for making use of extra functionality of some C compilers used for Contiki, and defining work-arounds for various quirks and problems with some other C compilers.
Definition in file cc.h.
#define CC_ACCESS_NOW | ( | type, | |
variable | |||
) | (*(volatile type *)&(variable)) |
This macro ensures that the access to a non-volatile variable can not be reordered or optimized by the compiler.
See also https://lwn.net/Articles/508991/ - In Linux the macro is called ACCESS_ONCE The type must be passed, because the typeof-operator is a gcc extension