From: Damjan Marion Date: Fri, 31 Mar 2023 12:14:41 +0000 (+0000) Subject: vlib: add vlib_frame_bitmap_{set,clear}_bit_at_index X-Git-Tag: v23.10-rc0~99 X-Git-Url: https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commitdiff_plain;h=156d452750ab37a51984938bf4a8ab0e16650d82 vlib: add vlib_frame_bitmap_{set,clear}_bit_at_index Type: improvement Change-Id: I5703728f680f0c8431e4099b398827bd094b60df Signed-off-by: Damjan Marion --- diff --git a/src/vlib/node_funcs.h b/src/vlib/node_funcs.h index a75f1f3a16a..9e0825b65cb 100644 --- a/src/vlib/node_funcs.h +++ b/src/vlib/node_funcs.h @@ -1403,6 +1403,22 @@ vlib_frame_bitmap_init (uword *bmp, u32 n_first_bits_set) bmp++[0] = 0; } +static_always_inline void +vlib_frame_bitmap_set_bit_at_index (uword *bmp, uword bit_index) +{ + bmp += bit_index / uword_bits; + bit_index %= uword_bits; + bmp[0] |= 1 << bit_index; +} + +static_always_inline void +_vlib_frame_bitmap_clear_bit_at_index (uword *bmp, uword bit_index) +{ + bmp += bit_index / uword_bits; + bit_index %= uword_bits; + bmp[0] &= ~((uword) 1 << bit_index); +} + static_always_inline void vlib_frame_bitmap_clear (uword *bmp) {