wget2: Bitmap management functions

| wget2 2.0.0

- Main Page
- Modules
- Data Structures
- Files

Data Structures | Macros | Functions
Bitmap management functions

## Data Structures
struct | wget_bitmap_st

## Macros
#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)

## 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

## ◆ wget_bitmap_set()

void wget_bitmap_set | ( | wget_bitmap * | b,
|  | unsigned | n
| ) |  |

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()

void wget_bitmap_clear | ( | wget_bitmap * | b,
|  | unsigned | n
| ) |  |

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()

void wget_bitmap_free | ( | wget_bitmap ** | b | ) |

Parameters

  [in] | b | Pointer to bitmap to free

Frees and clears the bitmap pointed to by `b`.