rem: int32 block = start >> 5;  while (numBlocks > 0) { uint32 mask = 0; for (int32 i = start % 32; i < 32 && numBlocks; i++, numBlocks--) mask |= 1UL << (i % 32);  Block(block++) &= HOST_ENDIAN_TO_BFS_INT32(~mask); start = 0; }
add: return B_OK;
context: AllocationBlock::Free(uint16 start, uint16 numBlocks){	ASSERT(start < fNumBits);	ASSERT(uint32(start + numBlocks) <= fNumBits);	if (uint32(start + numBlocks) > fNumBits) {		FATAL(("Allocation::Free(): tried to free too many blocks: %u (numBlocks = %lu)!\n", numBlocks, fNumBits));		DIE(("Allocation::Free(): tried to free too many blocks"));	}	int32 block = start >> 5;	while (numBlocks > 0) {		uint32 mask = 0;		for (int32 i = start % 32; i < 32 && numBlocks; i++, numBlocks--)			mask |= 1UL << (i % 32);		Block(block++) &= HOST_ENDIAN_TO_BFS_INT32(~mask);		start = 0;	}}