MCPcopy Create free account
hub / github.com/davidgiven/fluxengine / adfGetFreeBlocks

Function adfGetFreeBlocks

dep/adflib/src/adf_bitm.c:262–291  ·  view source on GitHub ↗

* adfGetFreeBlocks * */

Source from the content-addressed store, hash-verified

260 *
261 */
262BOOL adfGetFreeBlocks(struct Volume* vol, int nbSect, SECTNUM* sectList)
263{
264 int i, j;
265 BOOL diskFull;
266 int32_t block = vol->rootBlock;
267
268 i = 0;
269 diskFull = FALSE;
270/*printf("lastblock=%ld\n",vol->lastBlock);*/
271 while( i<nbSect && !diskFull ) {
272 if ( adfIsBlockFree(vol, block) ) {
273 sectList[i] = block;
274 i++;
275 }
276/* if ( block==vol->lastBlock )
277 block = vol->firstBlock+2;*/
278 if ( (block+vol->firstBlock)==vol->lastBlock )
279 block = 2;
280 else if (block==vol->rootBlock-1)
281 diskFull = TRUE;
282 else
283 block++;
284 }
285
286 if (!diskFull)
287 for(j=0; j<nbSect; j++)
288 adfSetBlockUsed( vol, sectList[j] );
289
290 return (i==nbSect);
291}
292
293
294/*

Callers 3

adfCreateVolFunction · 0.85
adfGet1FreeBlockFunction · 0.85
adfWriteNewBitmapFunction · 0.85

Calls 2

adfIsBlockFreeFunction · 0.85
adfSetBlockUsedFunction · 0.85

Tested by

no test coverage detected