bitset: use void * instead of uint8_t *
This commit is contained in:
parent
ce9065166b
commit
5387c2cdb7
2 changed files with 15 additions and 10 deletions
|
@ -3,8 +3,8 @@
|
|||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
int is_bit_set(uint8_t *set, size_t n);
|
||||
void set_bit(uint8_t *set, size_t n);
|
||||
void clear_bit(uint8_t *set, size_t n);
|
||||
size_t next_set_bit(uint8_t *set, size_t len);
|
||||
size_t next_clear_bit(uint8_t *set, size_t len);
|
||||
int is_bit_set(void *set, size_t n);
|
||||
void set_bit(void *set, size_t n);
|
||||
void clear_bit(void *set, size_t n);
|
||||
size_t next_set_bit(void *set, size_t len);
|
||||
size_t next_clear_bit(void *set, size_t len);
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
#include <bitset.h>
|
||||
#include <macros.h>
|
||||
|
||||
int is_bit_set(uint8_t *set, size_t n)
|
||||
int is_bit_set(void *set_, size_t n)
|
||||
{
|
||||
uint8_t *set = set_;
|
||||
uint8_t *word, mask;
|
||||
|
||||
word = set + n / BIT_SIZE(*set);
|
||||
|
@ -11,8 +12,9 @@ int is_bit_set(uint8_t *set, size_t n)
|
|||
return (*word & mask) ? 1 : 0;
|
||||
}
|
||||
|
||||
void set_bit(uint8_t *set, size_t n)
|
||||
void set_bit(void *set_, size_t n)
|
||||
{
|
||||
uint8_t *set = set_;
|
||||
uint8_t *word, mask;
|
||||
|
||||
word = set + n / BIT_SIZE(*set);
|
||||
|
@ -21,8 +23,9 @@ void set_bit(uint8_t *set, size_t n)
|
|||
*word |= mask;
|
||||
}
|
||||
|
||||
void clear_bit(uint8_t *set, size_t n)
|
||||
void clear_bit(void *set_, size_t n)
|
||||
{
|
||||
uint8_t *set = set_;
|
||||
uint8_t *word, mask;
|
||||
|
||||
word = set + n / BIT_SIZE(*set);
|
||||
|
@ -31,8 +34,9 @@ void clear_bit(uint8_t *set, size_t n)
|
|||
*word &= ~mask;
|
||||
}
|
||||
|
||||
size_t next_set_bit(uint8_t *set, size_t len)
|
||||
size_t next_set_bit(void *set_, size_t len)
|
||||
{
|
||||
uint8_t *set = set_;
|
||||
size_t n;
|
||||
|
||||
for (n = 0; n < len; ++n) {
|
||||
|
@ -43,8 +47,9 @@ size_t next_set_bit(uint8_t *set, size_t len)
|
|||
return SIZE_MAX;
|
||||
}
|
||||
|
||||
size_t next_clear_bit(uint8_t *set, size_t len)
|
||||
size_t next_clear_bit(void *set_, size_t len)
|
||||
{
|
||||
uint8_t *set = set_;
|
||||
size_t n;
|
||||
|
||||
for (n = 0; n < len; ++n) {
|
||||
|
|
Loading…
Add table
Reference in a new issue