Lines Matching full:block

42  * Maximum number of loops while examining next block, to have a
229 /* Scan for a free block */ in INFTL_findfreeblock()
255 int block, silly; in INFTL_foldchain() local
276 * 512-byte block within the Chain. in INFTL_foldchain()
280 for (block = 0; block < inftl->EraseSize/SECTORSIZE; block ++) { in INFTL_foldchain()
281 if ((BlockMap[block] != BLOCK_NIL) || in INFTL_foldchain()
282 BlockDeleted[block]) in INFTL_foldchain()
286 + (block * SECTORSIZE), 16, &retlen, in INFTL_foldchain()
297 BlockMap[block] = thisEUN; in INFTL_foldchain()
300 BlockDeleted[block] = 1; in INFTL_foldchain()
304 "for block %d in EUN %d: %x\n", in INFTL_foldchain()
305 block, thisEUN, status); in INFTL_foldchain()
320 * OK. We now know the location of every block in the Virtual Unit in INFTL_foldchain()
326 for (block = 0; block < inftl->EraseSize/SECTORSIZE ; block++) { in INFTL_foldchain()
334 if (BlockMap[block] == targetEUN || (pendingblock == in INFTL_foldchain()
335 (thisVUC * (inftl->EraseSize / SECTORSIZE) + block))) { in INFTL_foldchain()
340 * Copy only in non free block (free blocks can only in INFTL_foldchain()
343 if (BlockMap[block] == BLOCK_NIL) in INFTL_foldchain()
347 (inftl->EraseSize * BlockMap[block]) + (block * SECTORSIZE), in INFTL_foldchain()
353 (inftl->EraseSize * BlockMap[block]) + (block * SECTORSIZE), in INFTL_foldchain()
364 (block * SECTORSIZE), SECTORSIZE, &retlen, in INFTL_foldchain()
389 /* Unlink the last block from the chain. */ in INFTL_foldchain()
395 * Could not erase : mark block as reserved. in INFTL_foldchain()
471 * for this block. Make it available if it isn't already.
473 static inline u16 INFTL_findwriteunit(struct INFTLrecord *inftl, unsigned block) in INFTL_findwriteunit() argument
475 unsigned int thisVUC = block / (inftl->EraseSize / SECTORSIZE); in INFTL_findwriteunit()
477 unsigned long blockofs = (block * SECTORSIZE) & (inftl->EraseSize -1); in INFTL_findwriteunit()
485 pr_debug("INFTL: INFTL_findwriteunit(inftl=%p,block=%d)\n", in INFTL_findwriteunit()
486 inftl, block); in INFTL_findwriteunit()
491 * a free space for the block in question. in INFTL_findwriteunit()
502 pr_debug("INFTL: status of block %d in EUN %d is %x\n", in INFTL_findwriteunit()
503 block , writeEUN, status); in INFTL_findwriteunit()
517 * Invalid block. Don't use it any more. in INFTL_findwriteunit()
529 /* Skip to next block in chain */ in INFTL_findwriteunit()
550 thisEUN = INFTL_makefreeblock(inftl, block); in INFTL_findwriteunit()
579 * Insert new block into virtual chain. Firstly update the in INFTL_findwriteunit()
580 * block headers in flash... in INFTL_findwriteunit()
644 int block, silly; in INFTL_trydeletechain() local
667 for (block = 0; block < inftl->EraseSize/SECTORSIZE; block++) { in INFTL_trydeletechain()
668 if (BlockUsed[block] || BlockDeleted[block]) in INFTL_trydeletechain()
672 + (block * SECTORSIZE), 8 , &retlen, in INFTL_trydeletechain()
683 BlockUsed[block] = 1; in INFTL_trydeletechain()
686 BlockDeleted[block] = 1; in INFTL_trydeletechain()
690 "for block %d in EUN %d: 0x%x\n", in INFTL_trydeletechain()
691 block, thisEUN, status); in INFTL_trydeletechain()
704 for (block = 0; block < inftl->EraseSize/SECTORSIZE; block++) in INFTL_trydeletechain()
705 if (BlockUsed[block]) in INFTL_trydeletechain()
709 * For each block in the chain free it and make it available in INFTL_trydeletechain()
737 * Could not erase : mark block as reserved. in INFTL_trydeletechain()
758 static int INFTL_deleteblock(struct INFTLrecord *inftl, unsigned block) in INFTL_deleteblock() argument
760 unsigned int thisEUN = inftl->VUtable[block / (inftl->EraseSize / SECTORSIZE)]; in INFTL_deleteblock()
761 unsigned long blockofs = (block * SECTORSIZE) & (inftl->EraseSize - 1); in INFTL_deleteblock()
769 "block=%d)\n", inftl, block); in INFTL_deleteblock()
789 "block %d in EUN %d: 0x%x\n", in INFTL_deleteblock()
790 block, thisEUN, status); in INFTL_deleteblock()
797 block / (inftl->EraseSize / SECTORSIZE)); in INFTL_deleteblock()
812 INFTL_trydeletechain(inftl, block / (inftl->EraseSize / SECTORSIZE)); in INFTL_deleteblock()
817 static int inftl_writeblock(struct mtd_blktrans_dev *mbd, unsigned long block, in inftl_writeblock() argument
822 unsigned long blockofs = (block * SECTORSIZE) & (inftl->EraseSize - 1); in inftl_writeblock()
827 pr_debug("INFTL: inftl_writeblock(inftl=%p,block=%ld," in inftl_writeblock()
828 "buffer=%p)\n", inftl, block, buffer); in inftl_writeblock()
830 /* Is block all zero? */ in inftl_writeblock()
836 writeEUN = INFTL_findwriteunit(inftl, block); in inftl_writeblock()
840 "block to write to\n"); in inftl_writeblock()
842 * If we _still_ haven't got a block to use, in inftl_writeblock()
859 INFTL_deleteblock(inftl, block); in inftl_writeblock()
865 static int inftl_readblock(struct mtd_blktrans_dev *mbd, unsigned long block, in inftl_readblock() argument
869 unsigned int thisEUN = inftl->VUtable[block / (inftl->EraseSize / SECTORSIZE)]; in inftl_readblock()
870 unsigned long blockofs = (block * SECTORSIZE) & (inftl->EraseSize - 1); in inftl_readblock()
877 pr_debug("INFTL: inftl_readblock(inftl=%p,block=%ld," in inftl_readblock()
878 "buffer=%p)\n", inftl, block, buffer); in inftl_readblock()
898 "block %ld in EUN %d: 0x%04x\n", in inftl_readblock()
899 block, thisEUN, status); in inftl_readblock()
906 block / (inftl->EraseSize / SECTORSIZE)); in inftl_readblock()
915 /* The requested block is not on the media, return all 0x00 */ in inftl_readblock()