Lines Matching refs:block

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