1 #include "logfsos.h" 2 #include "logfs.h" 3 #include "nandfs.h" 4 #include "local.h" 5 6 long nandfsfindfreeblock(Nandfs * nandfs,long * freeblocksp)7nandfsfindfreeblock(Nandfs *nandfs, long *freeblocksp) 8 { 9 long bestnewblock; 10 long bestnerase; 11 long i; 12 13 if (freeblocksp) 14 *freeblocksp = 0; 15 for (i = 0, bestnewblock = -1, bestnerase = 0x7fffffff; i < nandfs->ll.blocks; i++) { 16 long nerase; 17 if (nandfsgettag(nandfs, i) == LogfsTnone) { 18 if (freeblocksp) { 19 (*freeblocksp)++; 20 } 21 if ((nerase = nandfsgetnerase(nandfs, i)) < bestnerase) { 22 bestnewblock = i; 23 bestnerase = nerase; 24 } 25 } 26 } 27 return bestnewblock; 28 } 29