![]() |
MySQL 8.4.7
Source Code Documentation
|
#include <assert.h>#include <limits.h>#include <string.h>#include <sys/types.h>#include "my_inttypes.h"Go to the source code of this file.
Classes | |
| struct | MY_BITMAP |
Macros | |
| #define | MY_BIT_NONE (~(uint)0) |
| #define | bitmap_buffer_size(bits) (((bits) + 31) / 32) * 4 |
| #define | no_bytes_in_map(map) (((map)->n_bits + 7) / 8) |
| #define | no_words_in_map(map) (((map)->n_bits + 31) / 32) |
Typedefs | |
| typedef uint32 | my_bitmap_map |
Functions | |
| void | create_last_word_mask (MY_BITMAP *map) |
| bool | bitmap_init (MY_BITMAP *map, my_bitmap_map *buf, uint n_bits) |
| bool | bitmap_is_clear_all (const MY_BITMAP *map) |
| bool | bitmap_is_prefix (const MY_BITMAP *map, uint prefix_size) |
| bool | bitmap_is_set_all (const MY_BITMAP *map) |
| bool | bitmap_is_subset (const MY_BITMAP *map1, const MY_BITMAP *map2) |
| bool | bitmap_is_overlapping (const MY_BITMAP *map1, const MY_BITMAP *map2) |
| bool | bitmap_is_valid (const MY_BITMAP *map) |
| Check if 'map' is valid. More... | |
| bool | bitmap_test_and_set (MY_BITMAP *map, uint bitmap_bit) |
| uint | bitmap_set_next (MY_BITMAP *map) |
| uint | bitmap_get_first (const MY_BITMAP *map) |
| uint | bitmap_get_first_set (const MY_BITMAP *map) |
| uint | bitmap_get_next_set (const MY_BITMAP *map, uint bitmap_bit) |
| Get the next set bit. More... | |
| uint | bitmap_bits_set (const MY_BITMAP *map) |
| void | bitmap_free (MY_BITMAP *map) |
| void | bitmap_set_above (MY_BITMAP *map, uint from_byte, bool use_bit) |
| void | bitmap_set_prefix (MY_BITMAP *map, uint prefix_size) |
| Set the specified number of bits in the bitmap buffer. More... | |
| void | bitmap_intersect (MY_BITMAP *to, const MY_BITMAP *from) |
| void | bitmap_subtract (MY_BITMAP *map, const MY_BITMAP *map2) |
| void | bitmap_union (MY_BITMAP *map, const MY_BITMAP *map2) |
| void | bitmap_xor (MY_BITMAP *map, const MY_BITMAP *map2) |
| void | bitmap_invert (MY_BITMAP *map) |
| void | bitmap_copy (MY_BITMAP *map, const MY_BITMAP *map2) |
| uint | bitmap_n_copy (MY_BITMAP *dst, const MY_BITMAP *src, uint max_bits_to_copy=UINT_MAX) |
| Copy as many bits as 'dst' can hold from 'src', but no more than max_bits_to_copy bits. More... | |
| static void | bitmap_set_bit (MY_BITMAP *map, uint bit) |
| static void | bitmap_flip_bit (MY_BITMAP *map, uint bit) |
| static void | bitmap_clear_bit (MY_BITMAP *map, uint bit) |
| static bool | bitmap_is_set (const MY_BITMAP *map, uint bit) |
| static bool | bitmap_cmp (const MY_BITMAP *map1, const MY_BITMAP *map2) |
| Quite unlike other C comparison functions ending with 'cmp', e.g. More... | |
| static void | bitmap_clear_all (MY_BITMAP *map) |
| static void | bitmap_set_all (MY_BITMAP *map) |
| #define bitmap_buffer_size | ( | bits | ) | (((bits) + 31) / 32) * 4 |
| #define MY_BIT_NONE (~(uint)0) |
| #define no_bytes_in_map | ( | map | ) | (((map)->n_bits + 7) / 8) |
| #define no_words_in_map | ( | map | ) | (((map)->n_bits + 31) / 32) |
| typedef uint32 my_bitmap_map |
| uint bitmap_bits_set | ( | const MY_BITMAP * | map | ) |
|
inlinestatic |
|
inlinestatic |
Quite unlike other C comparison functions ending with 'cmp', e.g.
memcmp(), strcmp(), this function returns true if the bitmaps are equal, and false otherwise.
| true | The bitmaps are equal. |
| false | The bitmaps differ. |
|
inlinestatic |
| void bitmap_free | ( | MY_BITMAP * | map | ) |
| uint bitmap_get_first | ( | const MY_BITMAP * | map | ) |
| uint bitmap_get_first_set | ( | const MY_BITMAP * | map | ) |
| uint bitmap_get_next_set | ( | const MY_BITMAP * | map, |
| uint | bitmap_bit | ||
| ) |
Get the next set bit.
| map | Bitmap |
| bitmap_bit | Bit to start search from |
| bool bitmap_init | ( | MY_BITMAP * | map, |
| my_bitmap_map * | buf, | ||
| uint | n_bits | ||
| ) |
| void bitmap_invert | ( | MY_BITMAP * | map | ) |
| bool bitmap_is_clear_all | ( | const MY_BITMAP * | map | ) |
| bool bitmap_is_prefix | ( | const MY_BITMAP * | map, |
| uint | prefix_size | ||
| ) |
|
inlinestatic |
| bool bitmap_is_set_all | ( | const MY_BITMAP * | map | ) |
| bool bitmap_is_valid | ( | const MY_BITMAP * | map | ) |
Check if 'map' is valid.
| map | The map that we wish to verify. |
Copy as many bits as 'dst' can hold from 'src', but no more than max_bits_to_copy bits.
'src' and 'dst' should not overlap. If 'dst' and 'src' have the same size (in bits), and this is less or equal than max_bits_to_copy, this function behaves identical to bitmap_copy().
| dst | The destination bitmap. |
| src | The source bitmap. |
| max_bits_to_copy | The maximal number of bits to copy. |
| void bitmap_set_above | ( | MY_BITMAP * | map, |
| uint | from_byte, | ||
| bool | use_bit | ||
| ) |
|
inlinestatic |
|
inlinestatic |
| uint bitmap_set_next | ( | MY_BITMAP * | map | ) |
| void bitmap_set_prefix | ( | MY_BITMAP * | map, |
| uint | prefix_size | ||
| ) |
Set the specified number of bits in the bitmap buffer.
| map | Bitmap |
| prefix_size | Number of bits to be set |
| bool bitmap_test_and_set | ( | MY_BITMAP * | map, |
| uint | bitmap_bit | ||
| ) |
| void create_last_word_mask | ( | MY_BITMAP * | map | ) |