MCPcopy Create free account
hub / github.com/ElementsProject/lightning / bitmap_zero_range

Function bitmap_zero_range

ccan/ccan/bitmap/bitmap.c:12–35  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

10#define BIT_ALIGN_UP(n) BIT_ALIGN_DOWN((n) + BITMAP_WORD_BITS - 1)
11
12void bitmap_zero_range(bitmap *b, unsigned long n, unsigned long m)
13{
14 unsigned long an = BIT_ALIGN_UP(n);
15 unsigned long am = BIT_ALIGN_DOWN(m);
16 bitmap_word headmask = BITMAP_WORD_1 >> (n % BITMAP_WORD_BITS);
17 bitmap_word tailmask = ~(BITMAP_WORD_1 >> (m % BITMAP_WORD_BITS));
18
19 assert(m >= n);
20
21 if (am < an) {
22 BITMAP_WORD(b, n) &= ~bitmap_bswap(headmask & tailmask);
23 return;
24 }
25
26 if (an > n)
27 BITMAP_WORD(b, n) &= ~bitmap_bswap(headmask);
28
29 if (am > an)
30 memset(&BITMAP_WORD(b, an), 0,
31 (am - an) / BITMAP_WORD_BITS * sizeof(bitmap_word));
32
33 if (m > am)
34 BITMAP_WORD(b, m) &= ~bitmap_bswap(tailmask);
35}
36
37void bitmap_fill_range(bitmap *b, unsigned long n, unsigned long m)
38{

Callers 3

bitmap_realloc0Function · 0.85
test_sizeFunction · 0.85
json_blacklistruneFunction · 0.85

Calls 1

bitmap_bswapFunction · 0.85

Tested by 1

test_sizeFunction · 0.68