Lines Matching defs:block
35 unsigned int i, block;
55 for (block = 0; block < inftl->nb_blocks; block++) {
62 ret = mtd_read(mtd, block * inftl->EraseSize, SECTORSIZE,
70 printk(KERN_WARNING "INFTL: block read at 0x%x "
72 block * inftl->EraseSize,
76 "failures for this block will "
89 block * inftl->EraseSize + SECTORSIZE + 8,
94 "(err %d)\n", block * inftl->EraseSize,
107 mtd_read(mtd, block * inftl->EraseSize + 4096, SECTORSIZE,
172 block >>= mh->BlockMultiplierBits;
202 * to erase the hidden block for full
286 /* Mark this boot record (NFTL MediaHeader) block as reserved */
287 inftl->PUtable[block] = BLOCK_RESERVED;
301 inftl->MediaUnit = block;
368 int INFTL_formatblock(struct INFTLrecord *inftl, int block)
376 pr_debug("INFTL: INFTL_formatblock(inftl=%p,block=%d)\n", inftl, block);
384 instr->addr = block * inftl->EraseSize;
388 mark only the failed block in the bbt. */
395 printk(KERN_WARNING "INFTL: error while formatting block %d\n",
396 block);
415 instr->addr = block * inftl->EraseSize + SECTORSIZE * 2;
420 /* could not format, update the bad block table (caller is responsible
436 unsigned int block = first_block, block1;
438 printk(KERN_WARNING "INFTL: formatting chain at block %d\n",
442 block1 = inftl->PUtable[block];
444 printk(KERN_WARNING "INFTL: formatting block %d\n", block);
445 if (INFTL_formatblock(inftl, block) < 0) {
449 inftl->PUtable[block] = BLOCK_RESERVED;
451 inftl->PUtable[block] = BLOCK_FREE;
454 /* Goto next block on the chain */
455 block = block1;
457 if (block == BLOCK_NIL || block >= inftl->lastEUN)
509 int logical, block, i;
516 block = s->VUtable[logical];
517 if (block >= s->nb_blocks)
519 pr_debug(" LOGICAL %d --> %d ", logical, block);
521 if (s->PUtable[block] == BLOCK_NIL)
523 block = s->PUtable[block];
524 pr_debug("%d ", block);
536 unsigned int block, first_block, prev_block, last_block;
557 logical_block = block = BLOCK_NIL;
571 * Any block that is in any way invalid will be left in the
583 block = first_block;
588 (s->PUtable[block] != BLOCK_NOTEXPLORED)) {
589 /* Nothing to do here, onto next block */
593 if (inftl_read_oob(mtd, block * s->EraseSize + 8,
595 inftl_read_oob(mtd, block * s->EraseSize +
606 ANACtable[block] = h0.ANAC;
608 /* Previous block is relative to start of Partition */
613 if (s->PUtable[block] != BLOCK_NOTEXPLORED) {
617 s->PUtable[last_block] = block;
622 /* Check for invalid block */
624 printk(KERN_WARNING "INFTL: corrupt block %d "
626 "mark 0x%x?\n", block, first_block,
640 s->PUtable[block] = BLOCK_FREE;
644 /* Sanity checks on block numbers */
650 "block %d in chain %d?\n",
651 block, first_block);
667 * Current block is valid, so if we followed a virtual
669 * block pointer in our PUtable now. Then move onto
670 * the previous block in the chain.
672 s->PUtable[block] = BLOCK_NIL;
674 s->PUtable[last_block] = block;
675 last_block = block;
676 block = prev_block;
679 if (block == BLOCK_NIL)
682 /* Validate next block before following it... */
683 if (block > s->lastEUN) {
685 "block %d in chain %d?\n", block,
699 * newest block in the chain, but it is the newest we have
716 block = s->VUtable[logical_block];
720 if (block >= BLOCK_RESERVED)
723 ANAC = ANACtable[block];
725 if (s->PUtable[block] == BLOCK_NIL)
727 if (s->PUtable[block] > s->lastEUN) {
730 s->PUtable[block], logical_block);
731 s->PUtable[block] = BLOCK_NIL;
734 if (ANACtable[block] != ANAC) {
738 * newest block and oldest block.
740 s->VUtable[logical_block] = block;
746 last_block = block;
747 block = s->PUtable[block];
763 * Third pass, format unreferenced blocks and init free block count.
769 for (block = s->firstEUN; block <= s->lastEUN; block++) {
770 if (s->PUtable[block] == BLOCK_NOTEXPLORED) {
771 printk("INFTL: unreferenced block %d, formatting it\n",
772 block);
773 if (INFTL_formatblock(s, block) < 0)
774 s->PUtable[block] = BLOCK_RESERVED;
776 s->PUtable[block] = BLOCK_FREE;
778 if (s->PUtable[block] == BLOCK_FREE) {
781 s->LastFreeEUN = block;