summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDamjan Marion <damarion@cisco.com>2023-09-29 14:31:08 +0200
committerOle Tr�an <otroan@employees.org>2023-10-03 12:19:58 +0000
commit08057947f3da441d571420d4594ce1e3888516ea (patch)
tree78666468602df039faadbe80d1262cbd959b3161 /src
parent029bff4b9a60ceabad8744059427b8736fe48a2b (diff)
vppinfra: add foreach_int macro
foreach_int(x, 1, 3, 5, 7) { fformat(stdout, "x is %u\n", x); } Type: improvement Change-Id: Idc355f4a284f421b150e3acb7a3a57bcede408c7 Signed-off-by: Damjan Marion <damarion@cisco.com>
Diffstat (limited to 'src')
-rw-r--r--src/vppinfra/types.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/vppinfra/types.h b/src/vppinfra/types.h
index a3fbfcc845b..42217968dcc 100644
--- a/src/vppinfra/types.h
+++ b/src/vppinfra/types.h
@@ -196,6 +196,12 @@ typedef i64 i64u __attribute__ ((aligned (1), __may_alias__));
typedef word wordu __attribute__ ((aligned (1), __may_alias__));
typedef uword uwordu __attribute__ ((aligned (1), __may_alias__));
+#define foreach_int(__var, ...) \
+ for (int __int_array[] = { __VA_ARGS__ }, *__int_ptr = __int_array, \
+ __var = *__int_ptr; \
+ __int_ptr - ARRAY_LEN (__int_array) < __int_array; \
+ __var = *++__int_ptr)
+
#endif /* included_clib_types_h */
/*