7 #ifndef ZRTOS_BITFIELD_H 8 #define ZRTOS_BITFIELD_H 26 #define ZRTOS_BITFIELD__NFDBITS (8 * sizeof(zrtos_bitfield_mask_t)) 27 #define ZRTOS_BITFIELD__ELT(d) (((size_t)d) / ZRTOS_BITFIELD__NFDBITS) 28 #define ZRTOS_BITFIELD__MASK(d) ((zrtos_bitfield_mask_t) (1 << (((size_t)d) % ZRTOS_BITFIELD__NFDBITS))) 29 #define ZRTOS_BITFIELD__MASK_MSB(d) ((zrtos_bitfield_mask_t) (1 << (7-(((size_t)d) % ZRTOS_BITFIELD__NFDBITS)))) 56 return (&thiz->
val)[pos];
74 for(
size_t i=start;i<len;i++){
114 #define ZRTOS_BITFIELD__EACH(thiz,len,pos) \ 116 ; ZRTOS_TYPES__SIZE_MAX \ 117 != (pos = zrtos_bitfield__find_first_set(thiz,len,pos)) \ #define ZRTOS_BITFIELD__MASK(d)
#define ZRTOS_BITFIELD__ELT(d)
#define ZRTOS_BITFIELD__NFDBITS
bool zrtos_bitfield__get(zrtos_bitfield_t *thiz, size_t pos)
void zrtos_mem__zero(void *dest, size_t len)
void zrtos_bitfield__copy(zrtos_bitfield_t *thiz, zrtos_bitfield_t *src, size_t len)
#define ZRTOS_TYPES__SIZE_MAX
size_t zrtos_bitfield__find_first_set(zrtos_bitfield_t *thiz, size_t len, size_t start)
size_t zrtos_bitfield__find_first(zrtos_bitfield_t *thiz, size_t len, size_t start, bool zero)
void zrtos_mem__cpy(void *dest, void *src, size_t length)
uint8_t zrtos_bitfield__get_uint8(zrtos_bitfield_t *thiz, size_t pos)
size_t zrtos_bitfield__find_first_zero(zrtos_bitfield_t *thiz, size_t len, size_t start)
void zrtos_bitfield__set_msb(zrtos_bitfield_t *thiz, size_t pos, bool val)
uint8_t zrtos_bitfield_mask_t
#define ZRTOS_BITFIELD__MASK_MSB(d)
void zrtos_bitfield__zero(zrtos_bitfield_t *thiz, size_t len)
void zrtos_bitfield__set(zrtos_bitfield_t *thiz, size_t pos, bool val)