Lines Matching refs:bitmap

57 devfs_clone_bitmap_init(struct devfs_bitmap *bitmap)  in devfs_clone_bitmap_init()  argument
59 bitmap->chunks = DEVFS_BITMAP_INITIAL_SIZE; in devfs_clone_bitmap_init()
60 bitmap->bitmap = kmalloc(bitmap->chunks * sizeof(u_long), in devfs_clone_bitmap_init()
62 memset(bitmap->bitmap, -1, bitmap->chunks * sizeof(u_long)); in devfs_clone_bitmap_init()
67 devfs_clone_bitmap_uninit(struct devfs_bitmap *bitmap) in devfs_clone_bitmap_uninit() argument
69 kfree(bitmap->bitmap, M_DEVFS); in devfs_clone_bitmap_uninit()
78 devfs_clone_bitmap_extend(struct devfs_bitmap *bitmap, int newchunks) in devfs_clone_bitmap_extend() argument
80 int oldchunks = bitmap->chunks; in devfs_clone_bitmap_extend()
82 bitmap->chunks = newchunks + 2; in devfs_clone_bitmap_extend()
83 bitmap->bitmap = krealloc(bitmap->bitmap, in devfs_clone_bitmap_extend()
84 sizeof(u_long) * bitmap->chunks, in devfs_clone_bitmap_extend()
86 memset(bitmap->bitmap + oldchunks, -1, in devfs_clone_bitmap_extend()
87 sizeof(u_long) * (bitmap->chunks - oldchunks)); in devfs_clone_bitmap_extend()
95 devfs_clone_bitmap_fff(struct devfs_bitmap *bitmap) in devfs_clone_bitmap_fff() argument
101 chunks = bitmap->chunks; in devfs_clone_bitmap_fff()
105 devfs_clone_bitmap_extend(bitmap, i); in devfs_clone_bitmap_fff()
106 curbitmap = bitmap->bitmap[i]; in devfs_clone_bitmap_fff()
136 devfs_clone_bitmap_chk(struct devfs_bitmap *bitmap, int unit) in devfs_clone_bitmap_chk() argument
145 if (chunk >= bitmap->chunks) { in devfs_clone_bitmap_chk()
149 res = !((bitmap->bitmap[chunk]) & (1UL << unit)); in devfs_clone_bitmap_chk()
170 devfs_clone_bitmap_set(struct devfs_bitmap *bitmap, int unit) in devfs_clone_bitmap_set() argument
179 if (chunk >= bitmap->chunks) in devfs_clone_bitmap_set()
180 devfs_clone_bitmap_extend(bitmap, chunk); in devfs_clone_bitmap_set()
181 if (bitmap->bitmap[chunk] & (1UL << unit)) { in devfs_clone_bitmap_set()
182 bitmap->bitmap[chunk] &= ~(1UL << unit); in devfs_clone_bitmap_set()
198 devfs_clone_bitmap_put(struct devfs_bitmap *bitmap, int unit) in devfs_clone_bitmap_put() argument
208 if (chunk < bitmap->chunks) in devfs_clone_bitmap_put()
209 bitmap->bitmap[chunk] |= (1UL << unit); in devfs_clone_bitmap_put()
221 devfs_clone_bitmap_get(struct devfs_bitmap *bitmap, int limit) in devfs_clone_bitmap_get() argument
226 unit = devfs_clone_bitmap_fff(bitmap); in devfs_clone_bitmap_get()
230 devfs_clone_bitmap_set(bitmap, unit); in devfs_clone_bitmap_get()