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