[PATCH v5 0/2] eal: provide leading and trailing zero bit count abstraction
Tyler Retzlaff
roretzla at linux.microsoft.com
Tue Jan 10 20:38:27 CET 2023
Move existing bit manipulation, log and npow functions from
rte_common.h to rte_bitops.h
Provide leading and trailing zero bit count functions to abstract away
compiler specific implementations.
Include basic unit test for new leading/trailing zero bit count functions.
v5:
* fix implementation of msvc versions of rte_clz{32,64}
incorrect use of _BitscanReverse{,64} index.
* fix and expand unit test to exercise full range of counting
over uint{32,64}_t input values. (which would have caught
above mistake).
* reduce commit title length
* correct commit author
v4:
* combine unit test commit into function addition commit
v3:
* rename to use 32/64 instead of l/ll suffixes
* add new functions to rte_bitops.h instead of new header
* move other bit functions from rte_common.h to rte_bitops.h
v2:
* use unsigned int instead of unsigned (checkpatches)
* match multiple include guard naming convention to rte_common.h
* add explicit extern "C" linkage to rte_bitcount.h
note: not really needed but checkpatches required
* add missing space around '-'
Tyler Retzlaff (2):
eal: move bit operation common to bitops header
eal: provide leading and trailing zero bit count abstraction
app/test/meson.build | 2 +
app/test/test_bitcount.c | 86 ++++++++
app/test/test_common.c | 1 +
lib/eal/common/rte_reciprocal.c | 1 +
lib/eal/include/rte_bitops.h | 460 ++++++++++++++++++++++++++++++++++++++++
lib/eal/include/rte_common.h | 293 -------------------------
6 files changed, 550 insertions(+), 293 deletions(-)
create mode 100644 app/test/test_bitcount.c
--
Series-acked-by: Morten Brørup <mb at smartsharesystems.com>
Series-acked-by: Bruce Richardson <bruce.richardson at intel.com>
More information about the dev
mailing list