Appiko
common_util.h
1 
28 #ifndef CODEBASE_COMMON_UTIL_H_
29 #define CODEBASE_COMMON_UTIL_H_
30 
32 #define MIN(a, b) ((a) < (b) ? (a) : (b))
33 
34 #define MAX(a, b) ((a) < (b) ? (b) : (a))
35 
48 #define CONCAT_2(p1, p2) CONCAT_2_(p1, p2)
49 
50 #define CONCAT_2_(p1, p2) p1##p2
51 
65 #define CONCAT_3(p1, p2, p3) CONCAT_3_(p1, p2, p3)
66 
67 #define CONCAT_3_(p1, p2, p3) p1##p2##p3
68 
70 #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
71 
80 #define ROUNDED_DIV(A, B) (((A) + ((B) / 2)) / (B))
81 
90 #define CEIL_DIV(A, B) \
91  (((A) + (B) - 1) / (B))
92 
99 #define IS_POWER_OF_TWO(A) ( ((A) != 0) && ((((A) - 1) & (A)) == 0) )
100 
101 enum
102 {
104  UNIT_1_25_MS = 1250,
105  UNIT_10_MS = 10000
106 };
107 
113 #define MSEC_TO_UNITS(TIME, RESOLUTION) (((TIME) * 1000) / (RESOLUTION))
114 
121 #define SET_BIT_VAR(VAR, BIT_NO) (VAR | (1 << BIT_NO))
122 
129 #define CLR_BIT_VAR(VAR, BIT_NO) (VAR & ~(1 << BIT_NO))
130 
131 #endif /* CODEBASE_COMMON_UTIL_H_ */
132