libwget-bitmap - Bitmap management functions
Contents
Detailed Description
Bitmap (bit array) implementation.
This is useful when you need a bitmap with more than 64 bits. Up to 64 bits you can use the C99 uint64_t
as a standard C bitfield.
As a usage example, Wget2 uses bitmaps for options with lists of HTTP status codes, which have values of
100-699.
Function Documentation
voidwget_bitmap_set(wget_bitmap*b,unsignedn)Parametersb Bitmap to act on
n Number of the bit to set (0-...)
Set the bit n in the bitmap b.
voidwget_bitmap_clear(wget_bitmap*b,unsignedn)Parametersb Bitmap to act on
n Number of the bit to clear (0-...)
Clear the bit n in the bitmap b.
boolwget_bitmap_get(constwget_bitmap*b,unsignedn)Parametersb Bitmap to read from
n Number of the bit of interest (0-...)
Returns
0 if bit n is cleared or if n is out of range 1 if bit is set
Returns whether the bit n is set or not.
intwget_bitmap_init(wget_bitmap**b,unsignedbits)Parametersb Pointer to the allocated bitmap
bits Number of bits
Returns
A wget_error value
Allocates a bitmap with a capacity of bits. It must be freed by wget_bitmap_free() after usage.
voidwget_bitmap_free(wget_bitmap**b)Parametersb Pointer to bitmap to free
Frees and clears the bitmap pointed to by b.
Name
libwget-bitmap - Bitmap management functions
Synopsis
DataStructures
struct wget_bitmap_stMacros
#define bitmap_type uint64_t
#define bitmap_bits (sizeof(bitmap_type) * 8)
#define bitmap_shift 6
#define map(n) (((wget_bitmap *)b)->map[(n) >> bitmap_shift])
#define bit(n) (((bitmap_type) 1) << ((n) & (bitmap_bits - 1)))
Functions
void wget_bitmap_set (wget_bitmap *b, unsigned n)
void wget_bitmap_clear (wget_bitmap *b, unsigned n)
bool wget_bitmap_get (const wget_bitmap *b, unsigned n)
int wget_bitmap_init (wget_bitmap **b, unsigned bits)
void wget_bitmap_free (wget_bitmap **b)
