40 curr = bitmap + (offset / 32);
41 end = bitmap + ((size + 31) / 32);
48 mask = (1U << 31) >>
i;
49 for (; i < 32; mask >>= 1, i++) {
56 while (++curr < end) {
61 for (i = 0; i < 32; mask >>= 1, i++) {
70 start = (curr -
bitmap) * 32 + i;
74 len =
min(size - start, len);
80 if (!--len || n & mask)
100 for (i = 0; i < len; i++) {
108 *max = (curr -
bitmap) * 32 + i - start;
149 bitmap =
HFS_SB(sb)->bitmap;
151 pos = hfs_find_set_zero_bits(bitmap,
HFS_SB(sb)->fs_ablocks, goal, num_bits);
152 if (pos >=
HFS_SB(sb)->fs_ablocks) {
154 pos = hfs_find_set_zero_bits(bitmap, goal, 0, num_bits);
155 if (pos >=
HFS_SB(sb)->fs_ablocks) {
162 HFS_SB(sb)->free_ablocks -= *num_bits;
163 hfs_bitmap_dirty(sb);
205 if ((start + count) >
HFS_SB(sb)->fs_ablocks)
210 curr =
HFS_SB(sb)->bitmap + (start / 32);
217 mask = 0xffffffff
U <<
j;
219 mask |= 0xffffffff
U >> (i +
count);
228 while (count >= 32) {
234 mask = 0xffffffff
U >>
count;
238 HFS_SB(sb)->free_ablocks += len;
240 hfs_bitmap_dirty(sb);