Bit pool data structure.
More...
◆ spdk_bit_pool_allocate_bit()
uint32_t spdk_bit_pool_allocate_bit |
( |
struct spdk_bit_pool * | pool | ) |
|
Allocate a bit from the bit pool.
- Parameters
-
pool | Bit pool to allocate a bit from |
- Returns
- index of the allocated bit, UINT32_MAX if no free bits exist
◆ spdk_bit_pool_capacity()
uint32_t spdk_bit_pool_capacity |
( |
const struct spdk_bit_pool * | pool | ) |
|
Return the number of bits that a bit pool is currently sized to hold.
- Parameters
-
- Returns
- the number of bits.
◆ spdk_bit_pool_count_allocated()
uint32_t spdk_bit_pool_count_allocated |
( |
const struct spdk_bit_pool * | pool | ) |
|
Count the number of bits allocated from the pool.
- Parameters
-
pool | The bit pool to count. |
- Returns
- the number of bits allocated from the pool.
◆ spdk_bit_pool_count_free()
uint32_t spdk_bit_pool_count_free |
( |
const struct spdk_bit_pool * | pool | ) |
|
Count the number of free bits in the pool.
- Parameters
-
pool | The bit pool to count. |
- Returns
- the number of free bits in the pool.
◆ spdk_bit_pool_create()
struct spdk_bit_pool * spdk_bit_pool_create |
( |
uint32_t | num_bits | ) |
|
Create a bit pool.
All bits in the pool will be available for allocation.
- Parameters
-
num_bits | Number of bits that the bit pool is sized to hold. |
- Returns
- a pointer to the new bit pool.
◆ spdk_bit_pool_create_from_array()
struct spdk_bit_pool * spdk_bit_pool_create_from_array |
( |
struct spdk_bit_array * | array | ) |
|
Create a bit pool from an existing spdk_bit_array.
The starting state of the bit pool will be specified by the state of the specified spdk_bit_array.
The new spdk_bit_pool will consume the spdk_bit_array and assumes responsibility for freeing it. The caller should not use the spdk_bit_array after this function returns.
- Parameters
-
array | spdk_bit_array representing the starting state of the new bit pool. |
- Returns
- a pointer to the new bit pool, NULL if one could not be created (in which case the caller maintains responsibility for the spdk_bit_array)
◆ spdk_bit_pool_free()
void spdk_bit_pool_free |
( |
struct spdk_bit_pool ** | pool | ) |
|
Free a bit pool and set the pointer to NULL.
- Parameters
-
◆ spdk_bit_pool_free_all_bits()
void spdk_bit_pool_free_all_bits |
( |
struct spdk_bit_pool * | pool | ) |
|
Free all bits back into the bit pool.
- Parameters
-
◆ spdk_bit_pool_free_bit()
void spdk_bit_pool_free_bit |
( |
struct spdk_bit_pool * | pool, |
|
|
uint32_t | bit_index ) |
Free a bit back to the bit pool.
Callers must not try to free a bit that has not been allocated, otherwise the pool may become corrupted without notification. Freeing a bit that has not been allocated will result in an assert in debug builds.
- Parameters
-
pool | Bit pool to place the freed bit |
bit_index | The index of a bit to free. |
◆ spdk_bit_pool_is_allocated()
bool spdk_bit_pool_is_allocated |
( |
const struct spdk_bit_pool * | pool, |
|
|
uint32_t | bit_index ) |
Return whether the specified bit has been allocated from the bit pool.
If bit_index is beyond the end of the current size of the bit pool, this function will return false (i.e. bits beyond the end of the pool cannot be allocated).
- Parameters
-
pool | Bit pool to query. |
bit_index | The index of a bit to query. |
- Returns
- true if the bit has been allocated, false otherwise
◆ spdk_bit_pool_load_mask()
void spdk_bit_pool_load_mask |
( |
struct spdk_bit_pool * | pool, |
|
|
const void * | mask ) |
Load bitmask to bit pool.
- Parameters
-
pool | Bit pool. |
mask | Source mask. Mask and bit array pool must be equal. |
◆ spdk_bit_pool_resize()
int spdk_bit_pool_resize |
( |
struct spdk_bit_pool ** | pool, |
|
|
uint32_t | num_bits ) |
Create or resize a bit pool.
To create a new bit pool, pass a pointer to a spdk_bit_pool pointer that is NULL.
The bit pool will be sized to hold at least num_bits.
If num_bits is larger than the previous size of the bit pool, the new bits will all be available for future allocations.
- Parameters
-
pool | Bit pool to create/resize. |
num_bits | Number of bits that the bit pool is sized to hold. |
- Returns
- 0 on success, negative errno on failure.
◆ spdk_bit_pool_store_mask()
void spdk_bit_pool_store_mask |
( |
const struct spdk_bit_pool * | pool, |
|
|
void * | mask ) |
Store bitmask from bit pool.
- Parameters
-
pool | Bit pool. |
mask | Destination mask. Mask and bit array pool must be equal. |