|
#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))) |
|
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.
◆ wget_bitmap_set()
- Parameters
-
b | Bitmap to act on |
n | Number of the bit to set (0-...) |
Set the bit n
in the bitmap b
.
◆ wget_bitmap_clear()
- Parameters
-
b | Bitmap to act on |
n | Number of the bit to clear (0-...) |
Clear the bit n
in the bitmap b
.
◆ wget_bitmap_get()
bool wget_bitmap_get |
( |
const wget_bitmap * |
b, |
|
|
unsigned |
n |
|
) |
| |
- Parameters
-
[in] | b | Bitmap to read from |
[in] | 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.
◆ wget_bitmap_init()
int wget_bitmap_init |
( |
wget_bitmap ** |
b, |
|
|
unsigned |
bits |
|
) |
| |
- Parameters
-
[out] | b | Pointer to the allocated bitmap |
[in] | 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.
◆ wget_bitmap_free()
- Parameters
-
[in] | b | Pointer to bitmap to free |
Frees and clears the bitmap pointed to by b
.