ref: a39ae178fcc4387fe63efea4d15b34d52f4a13de
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; }