ref: 00c219c7d9c2b9f60c2db0e1ba7289b2301209a7
dir: /libnandfs/findfreeblock.c/
#include "logfsos.h" #include "logfs.h" #include "nandfs.h" #include "local.h" long nandfsfindfreeblock(Nandfs *nandfs, long *freeblocksp) { long bestnewblock; long bestnerase; long i; if (freeblocksp) *freeblocksp = 0; for (i = 0, bestnewblock = -1, bestnerase = 0x7fffffff; i < nandfs->ll.blocks; i++) { long nerase; if (nandfsgettag(nandfs, i) == LogfsTnone) { if (freeblocksp) { (*freeblocksp)++; } if ((nerase = nandfsgetnerase(nandfs, i)) < bestnerase) { bestnewblock = i; bestnerase = nerase; } } } return bestnewblock; }