[PATCH 2/5] lib/eal: add portable version of __builtin_add_overflow
Morten Brørup
mb at smartsharesystems.com
Fri Jan 3 09:19:42 CET 2025
> From: Andre Muezerie [mailto:andremue at linux.microsoft.com]
> Sent: Thursday, 2 January 2025 23.33
>
> __builtin_add_overflow is gcc specific. There's a need for a portable
> version that can also be used with other compilers.
>
> This patch introduces __rte_add_overflow_u8, __rte_add_overflow_u16
> and __rte_add_overflow_u32.
Instead of the proposed three type-specific macros, add one generic rte_add_overflow(a, b, res) macro, like rte_bit_test() [1] using "_Generic".
[1]: https://elixir.bootlin.com/dpdk/v24.11.1/source/lib/eal/include/rte_bitops.h#L130
You may still need the type-specific macros as internal helpers for the MSVC implementation.
Furthermore, a 64 bit variant might be useful.
PS: DPDK naming convention typically uses just "8"/"16"/"32" postfix to the function name, not "_u8"/"_u16"/"_u32".
More information about the dev
mailing list