1 #ifndef _COMPILER_H_ 2 #define _COMPILER_H_ 3 4 #ifndef __INLINE 5 #define __INLINE inline 6 #endif 7 8 /// define the static keyword for this compiler 9 #define __STATIC static 10 11 /// define the BLE IRQ handler attribute for this compiler 12 #define __BTIRQ 13 14 /// define the BLE IRQ handler attribute for this compiler 15 #define __BLEIRQ 16 17 /// define size of an empty array (used to declare structure with an array size not defined) 18 #define __ARRAY_EMPTY 1 19 20 /// Function returns struct in registers (4 in rvds, var with gnuarm). 21 /// With Gnuarm, feature depends on command line options and 22 /// impacts ALL functions returning 2-words max structs 23 /// (check -freg-struct-return and -mabi=xxx) 24 #define __VIR 25 26 /// function has no side effect and return depends only on arguments 27 #define __PURE __attribute__((const)) 28 29 /// Align instantiated lvalue or struct member on 4 bytes 30 #define __ALIGN4 __attribute__((aligned(4))) 31 32 /// __MODULE__ comes from the RVDS compiler that supports it 33 #define __MODULE__ __BASE_FILE__ 34 35 /// Pack a structure field 36 #ifndef __PACKED 37 #define __PACKED __attribute__ ((__packed__)) 38 #endif 39 40 /// Put a variable in a memory maintained during deep sleep 41 #define __LOWPOWER_SAVED 42 43 #endif // _COMPILER_H_ 44