summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.clang-format1
-rw-r--r--src/vppinfra/clib.h2
2 files changed, 3 insertions, 0 deletions
diff --git a/.clang-format b/.clang-format
index 8326a07251b..1471d0f469b 100644
--- a/.clang-format
+++ b/.clang-format
@@ -20,6 +20,7 @@ ForEachMacros:
- 'vlib_foreach_rx_tx'
- 'foreach_vlib_main'
- 'foreach_set_bit_index'
+ - 'FOREACH_ARRAY_ELT'
- 'RTE_ETH_FOREACH_DEV'
StatementMacros:
diff --git a/src/vppinfra/clib.h b/src/vppinfra/clib.h
index 8d1e412db62..7a8029a30bd 100644
--- a/src/vppinfra/clib.h
+++ b/src/vppinfra/clib.h
@@ -74,6 +74,8 @@
#define BITS(x) (8*sizeof(x))
#define ARRAY_LEN(x) (sizeof (x)/sizeof (x[0]))
+#define FOREACH_ARRAY_ELT(a, b) \
+ for (typeof ((b)[0]) *(a) = (b); (a) - (b) < ARRAY_LEN (b); (a)++)
#define _STRUCT_FIELD(t,f) (((t *) 0)->f)
#define STRUCT_OFFSET_OF(t,f) offsetof(t, f)