/* Ensure that the last "unsigned long" in the bitmap only has as many
* 1-bits as there actually should be. */
bitmap[n_longs - 1] = (1UL << (n_bits % BITMAP_ULONG_BITS)) - 1;
from bitmap_allocate1(),
It will fail when n_bits % BITMAP_ULONG_BITS == 0, does it matter?
unsigned long *
bitmap_allocate1(size_t n_bits)
{
size_t n_bytes = bitmap_n_bytes(n_bits);
size_t n_longs = bitmap_n_longs(n_bits);
unsigned long *bitmap;
/* Allocate and initialize most of the bitmap. */
bitmap = xmalloc(n_bytes);
memset(bitmap, 0xff, n_bytes);
/* Ensure that the last "unsigned long" in the bitmap only has as many
* 1-bits as there actually should be. */
bitmap[n_longs - 1] = (1UL << (n_bits % BITMAP_ULONG_BITS)) - 1;
return bitmap;
}
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev