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 |