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