Lines Matching refs:array
96 #define ARRAY_SIZE(array) (sizeof(array) / sizeof((array)[0])) argument
105 #define IS_ARRAY(array) \
107 !__builtin_types_compatible_p(__typeof__(array), __typeof__(&(array)[0])))
118 #define ARRAY_SIZE(array) ((size_t)(IS_ARRAY(array) + (sizeof(array) / sizeof((array)[0]))))
160 #define IS_ARRAY_ELEMENT(array, ptr) \ argument
161 ((ptr) && POINTER_TO_UINT(array) <= POINTER_TO_UINT(ptr) && \
162 POINTER_TO_UINT(ptr) < POINTER_TO_UINT(&(array)[ARRAY_SIZE(array)]) && \
163 (POINTER_TO_UINT(ptr) - POINTER_TO_UINT(array)) % sizeof((array)[0]) == 0)
179 #define ARRAY_INDEX(array, ptr) \ argument
181 __ASSERT_NO_MSG(IS_ARRAY_ELEMENT(array, ptr)); \
182 (__typeof__((array)[0]) *)(ptr) - (array); \
195 #define PART_OF_ARRAY(array, ptr) \ argument
196 ((ptr) && POINTER_TO_UINT(array) <= POINTER_TO_UINT(ptr) && \
197 POINTER_TO_UINT(ptr) < POINTER_TO_UINT(&(array)[ARRAY_SIZE(array)]))
216 #define ARRAY_INDEX_FLOOR(array, ptr) \ argument
218 __ASSERT_NO_MSG(PART_OF_ARRAY(array, ptr)); \
219 (POINTER_TO_UINT(ptr) - POINTER_TO_UINT(array)) / sizeof((array)[0]); \
228 #define ARRAY_FOR_EACH(array, idx) for (size_t idx = 0; (idx) < ARRAY_SIZE(array); ++(idx)) argument
236 #define ARRAY_FOR_EACH_PTR(array, ptr) \ argument
237 for (__typeof__(*(array)) *ptr = (array); (size_t)((ptr) - (array)) < ARRAY_SIZE(array); \