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 <stdint.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
int is_bit_set(uint8_t *set, size_t n);
|
int is_bit_set(void *set, size_t n);
|
||||||
void set_bit(uint8_t *set, size_t n);
|
void set_bit(void *set, size_t n);
|
||||||
void clear_bit(uint8_t *set, size_t n);
|
void clear_bit(void *set, size_t n);
|
||||||
size_t next_set_bit(uint8_t *set, size_t len);
|
size_t next_set_bit(void *set, size_t len);
|
||||||
size_t next_clear_bit(uint8_t *set, size_t len);
|
size_t next_clear_bit(void *set, size_t len);
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
#include <bitset.h>
|
#include <bitset.h>
|
||||||
#include <macros.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;
|
uint8_t *word, mask;
|
||||||
|
|
||||||
word = set + n / BIT_SIZE(*set);
|
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;
|
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;
|
uint8_t *word, mask;
|
||||||
|
|
||||||
word = set + n / BIT_SIZE(*set);
|
word = set + n / BIT_SIZE(*set);
|
||||||
|
@ -21,8 +23,9 @@ void set_bit(uint8_t *set, size_t n)
|
||||||
*word |= mask;
|
*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;
|
uint8_t *word, mask;
|
||||||
|
|
||||||
word = set + n / BIT_SIZE(*set);
|
word = set + n / BIT_SIZE(*set);
|
||||||
|
@ -31,8 +34,9 @@ void clear_bit(uint8_t *set, size_t n)
|
||||||
*word &= ~mask;
|
*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;
|
size_t n;
|
||||||
|
|
||||||
for (n = 0; n < len; ++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;
|
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;
|
size_t n;
|
||||||
|
|
||||||
for (n = 0; n < len; ++n) {
|
for (n = 0; n < len; ++n) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue