From 5387c2cdb70f813565a72e9405b48f52940f3072 Mon Sep 17 00:00:00 2001 From: "S.J.R. van Schaik" Date: Fri, 31 Mar 2017 16:47:42 +0200 Subject: [PATCH] bitset: use void * instead of uint8_t * --- include/bitset.h | 10 +++++----- source/bitset.c | 15 ++++++++++----- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/include/bitset.h b/include/bitset.h index 02358fc..003c75b 100644 --- a/include/bitset.h +++ b/include/bitset.h @@ -3,8 +3,8 @@ #include #include -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); diff --git a/source/bitset.c b/source/bitset.c index afd4c9d..7a563fd 100644 --- a/source/bitset.c +++ b/source/bitset.c @@ -1,8 +1,9 @@ #include #include -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) {