| BITS(3) | Library Functions Manual | BITS(3) |
__BIT, __BITS,
__SHIFTIN, __SHIFTOUT,
__SHIFTOUT_MASK —
#include <sys/param.h>
#include <sys/cdefs.h>
uintmax_t
__BIT(n);
uintmax_t
__BITS(m,
n);
__SHIFTIN(v,
mask);
__SHIFTOUT(v,
mask);
__SHIFTOUT_MASK(mask);
Use __BIT() and
__BITS() to define bitmasks:
__BIT(n)__BITS(m,
n)__SHIFTIN(),
__SHIFTOUT(), and
__SHIFTOUT_MASK() help read and write bitfields from
words:
__SHIFTIN(v,
mask)__SHIFTOUT(v,
mask)__SHIFTOUT_MASK(mask)__SHIFTOUT_MASK(m) =
__SHIFTOUT(m,
m).bits macros:
uint32_t bits, mask, val; bits = __BITS(2, 3); /* 00001100 */ mask = __BIT(2) | __BIT(3); /* 00001100 */ val = __SHIFTIN(0x03, mask); /* 00001100 */ val = __SHIFTOUT(0xf, mask); /* 00000011 */
bits macros first appeared in
atw(4), with different names and
implementation. In their current form these macros appeared in
NetBSD 4.0.
bits macros were written by David
Young
<dyoung@NetBSD.org>.
SHIFTIN() and
SHIFTOUT().
| November 6, 2016 | NetBSD 9.0 |