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