Lines Matching refs:bmp

26 	struct bitmask *bmp;  in bitmask_alloc()  local
28 bmp = malloc(sizeof(*bmp)); in bitmask_alloc()
29 if (!bmp) in bitmask_alloc()
31 bmp->size = n; in bitmask_alloc()
32 bmp->maskp = calloc(longsperbits(n), sizeof(unsigned long)); in bitmask_alloc()
33 if (!bmp->maskp) { in bitmask_alloc()
34 free(bmp); in bitmask_alloc()
37 return bmp; in bitmask_alloc()
41 void bitmask_free(struct bitmask *bmp) in bitmask_free() argument
43 if (!bmp) in bitmask_free()
45 free(bmp->maskp); in bitmask_free()
46 bmp->maskp = (unsigned long *)0xdeadcdef; /* double free tripwire */ in bitmask_free()
47 free(bmp); in bitmask_free()
62 static unsigned int _getbit(const struct bitmask *bmp, unsigned int n) in _getbit() argument
64 if (n < bmp->size) in _getbit()
65 return (bmp->maskp[n/bitsperlong] >> (n % bitsperlong)) & 1; in _getbit()
71 static void _setbit(struct bitmask *bmp, unsigned int n, unsigned int v) in _setbit() argument
73 if (n < bmp->size) { in _setbit()
75 bmp->maskp[n/bitsperlong] |= 1UL << (n % bitsperlong); in _setbit()
77 bmp->maskp[n/bitsperlong] &= in _setbit()
115 struct bitmask *bitmask_setbit(struct bitmask *bmp, unsigned int i) in bitmask_setbit() argument
117 _setbit(bmp, i, 1); in bitmask_setbit()
118 return bmp; in bitmask_setbit()
122 struct bitmask *bitmask_setall(struct bitmask *bmp) in bitmask_setall() argument
125 for (i = 0; i < bmp->size; i++) in bitmask_setall()
126 _setbit(bmp, i, 1); in bitmask_setall()
127 return bmp; in bitmask_setall()
131 struct bitmask *bitmask_clearall(struct bitmask *bmp) in bitmask_clearall() argument
134 for (i = 0; i < bmp->size; i++) in bitmask_clearall()
135 _setbit(bmp, i, 0); in bitmask_clearall()
136 return bmp; in bitmask_clearall()
140 int bitmask_isallclear(const struct bitmask *bmp) in bitmask_isallclear() argument
143 for (i = 0; i < bmp->size; i++) in bitmask_isallclear()
144 if (_getbit(bmp, i)) in bitmask_isallclear()
150 int bitmask_isbitset(const struct bitmask *bmp, unsigned int i) in bitmask_isbitset() argument
152 return _getbit(bmp, i); in bitmask_isbitset()
156 unsigned int bitmask_first(const struct bitmask *bmp) in bitmask_first() argument
158 return bitmask_next(bmp, 0); in bitmask_first()
162 unsigned int bitmask_last(const struct bitmask *bmp) in bitmask_last() argument
165 unsigned int m = bmp->size; in bitmask_last()
166 for (i = 0; i < bmp->size; i++) in bitmask_last()
167 if (_getbit(bmp, i)) in bitmask_last()
173 unsigned int bitmask_next(const struct bitmask *bmp, unsigned int i) in bitmask_next() argument
176 for (n = i; n < bmp->size; n++) in bitmask_next()
177 if (_getbit(bmp, n)) in bitmask_next()
192 int bitmask_parselist(const char *buf, struct bitmask *bmp) in bitmask_parselist() argument
196 bitmask_clearall(bmp); in bitmask_parselist()
227 if (b >= bmp->size) in bitmask_parselist()
230 _setbit(bmp, a, 1); in bitmask_parselist()
236 bitmask_clearall(bmp); in bitmask_parselist()
275 int bitmask_displaylist(char *buf, int buflen, const struct bitmask *bmp) in bitmask_displaylist() argument
283 rbot = cur = bitmask_first(bmp); in bitmask_displaylist()
284 while (cur < bmp->size) { in bitmask_displaylist()
286 cur = bitmask_next(bmp, cur+1); in bitmask_displaylist()
287 if (cur >= bmp->size || cur > rtop + 1) { in bitmask_displaylist()