optmized the following macros: nmbs_bitfield_read, nmbs_bitfield_set, nmbs_bitfield_unset, nmbs_bitfield_write
This commit is contained in:
parent
546040c448
commit
b5fde1c6b3
@ -92,23 +92,23 @@ typedef uint8_t nmbs_bitfield_256[32];
|
|||||||
/**
|
/**
|
||||||
* Read a bit from the nmbs_bitfield bf at position b
|
* Read a bit from the nmbs_bitfield bf at position b
|
||||||
*/
|
*/
|
||||||
#define nmbs_bitfield_read(bf, b) ((bool) ((bf)[(b) / 8] & (0x1 << ((b) % 8))))
|
#define nmbs_bitfield_read(bf, b) ((bool) ((bf)[(b) >> 3] & (0x1 << ((b) & (8 - 1)))))
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set a bit of the nmbs_bitfield bf at position b
|
* Set a bit of the nmbs_bitfield bf at position b
|
||||||
*/
|
*/
|
||||||
#define nmbs_bitfield_set(bf, b) (((bf)[(b) / 8]) = (((bf)[(b) / 8]) | (0x1 << ((b) % 8))))
|
#define nmbs_bitfield_set(bf, b) (((bf)[(b) >> 3]) = (((bf)[(b) >> 3]) | (0x1 << ((b) & (8 - 1)))))
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Reset a bit of the nmbs_bitfield bf at position b
|
* Reset a bit of the nmbs_bitfield bf at position b
|
||||||
*/
|
*/
|
||||||
#define nmbs_bitfield_unset(bf, b) (((bf)[(b) / 8]) = (((bf)[(b) / 8]) & ~(0x1 << ((b) % 8))))
|
#define nmbs_bitfield_unset(bf, b) (((bf)[(b) >> 3]) = (((bf)[(b) >> 3]) & ~(0x1 << ((b) & (8 - 1)))))
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Write value v to the nmbs_bitfield bf at position b
|
* Write value v to the nmbs_bitfield bf at position b
|
||||||
*/
|
*/
|
||||||
#define nmbs_bitfield_write(bf, b, v) \
|
#define nmbs_bitfield_write(bf, b, v) \
|
||||||
(((bf)[(b) / 8]) = ((v) ? (((bf)[(b) / 8]) | (0x1 << ((b) % 8))) : (((bf)[(b) / 8]) & ~(0x1 << ((b) % 8)))))
|
(((bf)[(b) >> 3]) = ((v) ? (((bf)[(b) >> 3]) | (0x1 << ((b) & (8 - 1)))) : (((bf)[(b) >> 3]) & ~(0x1 << ((b) & (8 - 1))))))
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Reset (zero) the whole bitfield
|
* Reset (zero) the whole bitfield
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user