Lines Matching refs:block

29  * Maximum number of loops while examining next block, to have a
216 /* Scan for a free block */
242 int block, silly;
263 * 512-byte block within the Chain.
267 for (block = 0; block < inftl->EraseSize/SECTORSIZE; block ++) {
268 if ((BlockMap[block] != BLOCK_NIL) ||
269 BlockDeleted[block])
273 + (block * SECTORSIZE), 16, &retlen,
284 BlockMap[block] = thisEUN;
287 BlockDeleted[block] = 1;
291 "for block %d in EUN %d: %x\n",
292 block, thisEUN, status);
307 * OK. We now know the location of every block in the Virtual Unit
313 for (block = 0; block < inftl->EraseSize/SECTORSIZE ; block++) {
321 if (BlockMap[block] == targetEUN || (pendingblock ==
322 (thisVUC * (inftl->EraseSize / SECTORSIZE) + block))) {
327 * Copy only in non free block (free blocks can only
330 if (BlockMap[block] == BLOCK_NIL)
334 (inftl->EraseSize * BlockMap[block]) + (block * SECTORSIZE),
340 (inftl->EraseSize * BlockMap[block]) + (block * SECTORSIZE),
351 (block * SECTORSIZE), SECTORSIZE, &retlen,
376 /* Unlink the last block from the chain. */
382 * Could not erase : mark block as reserved.
458 * for this block. Make it available if it isn't already.
460 static inline u16 INFTL_findwriteunit(struct INFTLrecord *inftl, unsigned block)
462 unsigned int thisVUC = block / (inftl->EraseSize / SECTORSIZE);
464 unsigned long blockofs = (block * SECTORSIZE) & (inftl->EraseSize -1);
472 pr_debug("INFTL: INFTL_findwriteunit(inftl=%p,block=%d)\n",
473 inftl, block);
478 * a free space for the block in question.
489 pr_debug("INFTL: status of block %d in EUN %d is %x\n",
490 block , writeEUN, status);
504 * Invalid block. Don't use it any more.
516 /* Skip to next block in chain */
537 thisEUN = INFTL_makefreeblock(inftl, block);
566 * Insert new block into virtual chain. Firstly update the
567 * block headers in flash...
631 int block, silly;
654 for (block = 0; block < inftl->EraseSize/SECTORSIZE; block++) {
655 if (BlockUsed[block] || BlockDeleted[block])
659 + (block * SECTORSIZE), 8 , &retlen,
670 BlockUsed[block] = 1;
673 BlockDeleted[block] = 1;
677 "for block %d in EUN %d: 0x%x\n",
678 block, thisEUN, status);
691 for (block = 0; block < inftl->EraseSize/SECTORSIZE; block++)
692 if (BlockUsed[block])
696 * For each block in the chain free it and make it available
724 * Could not erase : mark block as reserved.
745 static int INFTL_deleteblock(struct INFTLrecord *inftl, unsigned block)
747 unsigned int thisEUN = inftl->VUtable[block / (inftl->EraseSize / SECTORSIZE)];
748 unsigned long blockofs = (block * SECTORSIZE) & (inftl->EraseSize - 1);
756 "block=%d)\n", inftl, block);
776 "block %d in EUN %d: 0x%x\n",
777 block, thisEUN, status);
784 block / (inftl->EraseSize / SECTORSIZE));
799 INFTL_trydeletechain(inftl, block / (inftl->EraseSize / SECTORSIZE));
804 static int inftl_writeblock(struct mtd_blktrans_dev *mbd, unsigned long block,
809 unsigned long blockofs = (block * SECTORSIZE) & (inftl->EraseSize - 1);
814 pr_debug("INFTL: inftl_writeblock(inftl=%p,block=%ld,"
815 "buffer=%p)\n", inftl, block, buffer);
817 /* Is block all zero? */
823 writeEUN = INFTL_findwriteunit(inftl, block);
827 "block to write to\n");
829 * If we _still_ haven't got a block to use,
846 INFTL_deleteblock(inftl, block);
852 static int inftl_readblock(struct mtd_blktrans_dev *mbd, unsigned long block,
856 unsigned int thisEUN = inftl->VUtable[block / (inftl->EraseSize / SECTORSIZE)];
857 unsigned long blockofs = (block * SECTORSIZE) & (inftl->EraseSize - 1);
864 pr_debug("INFTL: inftl_readblock(inftl=%p,block=%ld,"
865 "buffer=%p)\n", inftl, block, buffer);
885 "block %ld in EUN %d: 0x%04x\n",
886 block, thisEUN, status);
893 block / (inftl->EraseSize / SECTORSIZE));
902 /* The requested block is not on the media, return all 0x00 */