LIBBITMASK(3)
NAME
- bitmask, bitmask_alloc, bitmask_free, bitmask_displayhex, bitmask_displaylist, bitmask_parsehex, bitmask_parselist, bitmask_copy, bitmask_setall, bitmask_clearall, bitmask_nbytes, bitmask_mask, bitmask_nbits, bitmask_weight, bitmask_isbitset, bitmask_isbitclear, bitmask_isallset, bitmask_isallclear, bitmask_setbit, bitmask_clearbit,
bitmask_equal, bitmask_subset, bitmask_disjoint, bitmask_intersects,
bitmask_setrange, bitmask_clearrange, bitmask_keeprange, bitmask_complement, bitmask_shiftright, bitmask_shiftleft, bitmask_and, bitmask_andnot, bitmask_or, bitmask_eor, bitmask_first, bitmask_next, bitmask_rel_to_abs_pos, bitmask_abs_to_rel_pos, bitmask_last
- - Dynamically sized multi-word bit masks.
SYNOPSIS
#include <bitmask.h> cc ... -lbitmask Allocate and free `struct bitmask *`: struct bitmask *bitmask_alloc(unsigned int nbits); void bitmask_free(struct bitmask *bmp); Display and parse ascii string representations: int bitmask_displayhex(char *buf, int len, const struct bitmask *bmp); int bitmask_displaylist(char *buf, int len, const struct bitmask *bmp); int bitmask_parsehex(const char *buf, struct bitmask *bmp); int bitmask_parselist(const char *buf, struct bitmask *bmp); Basic initialization operations: struct bitmask *bitmask_copy(struct bitmask *bmp1, const bitmask *bmp2); struct bitmask *bitmask_setall(struct bitmask *bmp); struct bitmask *bitmask_clearall(struct bitmask *bmp); Interface to kernel sched_{set,get}affinity system calls: unsigned int bitmask_nbytes(struct bitmask *bmp); unsigned long *bitmask_mask(struct bitmask *bmp); Unary numeric queries: unsigned int bitmask_nbits(const struct bitmask *bmp); unsigned int bitmask_weight(const struct bitmask *bmp); Unary Boolean queries: int bitmask_isbitset(const struct bitmask *bmp, unsigned int i); int bitmask_isbitclear(const struct bitmask *bmp, unsigned int i); int bitmask_isallset(const struct bitmask *bmp); int bitmask_isallclear(const struct bitmask *bmp); Single bit operations: struct bitmask *bitmask_setbit(struct bitmask *bmp, unsigned int i); struct bitmask *bitmask_clearbit(struct bitmask *bmp, unsigned int i); Binary Boolean operations: bmp1 op? bmp2: int bitmask_equal(const struct bitmask *bmp1, const bitmask *bmp2); int bitmask_subset(const struct bitmask *bmp1, const bitmask *bmp2); int bitmask_disjoint(const struct bitmask *bmp1, const bitmask *bmp2); int bitmask_intersects(const struct bitmask *bmp1, const bitmask *bmp2); Range operations: struct bitmask *bitmask_setrange(struct bitmask *bmp, unsigned int i, unsigned int j); struct bitmask *bitmask_clearrange(struct bitmask *bmp, unsigned int i, unsigned int j); struct bitmask *bitmask_keeprange(struct bitmask *bmp, unsigned int i, unsigned int j); Unary operations: struct bitmask *bitmask_complement(struct bitmask *bmp1, const bitmask *bmp2); struct bitmask *bitmask_shiftright(struct bitmask *bmp1, const bitmask *bmp2, unsigned int n); struct bitmask *bitmask_shiftleft(struct bitmask *bmp1, const bitmask *bmp2, unsigned int n); Binary operations: struct bitmask *bitmask_and(struct bitmask *bmp1, const bitmask *bmp2, const bitmask *bmp3); struct bitmask *bitmask_andnot(struct bitmask *bmp1, const bitmask *bmp2, const bitmask *bmp3); struct bitmask *bitmask_or(struct bitmask *bmp1, const bitmask *bmp2, const bitmask *bmp3); struct bitmask *bitmask_eor(struct bitmask *bmp1, const bitmask *bmp2, const bitmask *bmp3); Iteration operators: int bitmask_first(const struct bitmask *bmp); unsigned int bitmask_next(const struct bitmask *bmp, unsigned int i); unsigned int bitmask_rel_to_abs_pos(const struct bitmask *bmp, unsigned int n); unsigned int bitmask_abs_to_rel_pos(const struct bitmask *bmp, unsigned int n); unsigned int bitmask_last(const struct bitmask *bmp);
DESCRIPTION
See further /usr/share/doc/packages/libbitmask/libbitmask.html. This
document is also available in plain text format as /usr/share/doc/packages/libbitmask/libbitmask.txt.
SEE ALSO
cpuset(1), libcpuset(3), bootcpuset.conf(5), bootcpuset(8).
AUTHOR
- pj@sgi.com (Paul Jackson)