X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs2.git;a=blobdiff_plain;f=yaffs_nand.c;h=e816cabf43f8e9b588a435c6198e85165ca98411;hp=bd1f05806ee56386efa957a1c4031f3eed5a7d3f;hb=fe192b14d52d6c7d4722402686dcb553153916c3;hpb=e33554a67753729f6b74677473cf0ec3b8d35a7e diff --git a/yaffs_nand.c b/yaffs_nand.c index bd1f058..e816cab 100644 --- a/yaffs_nand.c +++ b/yaffs_nand.c @@ -17,124 +17,111 @@ #include "yaffs_getblockinfo.h" -int yaffs_rd_chunk_tags_nand(yaffs_Device *dev, int chunkInNAND, - __u8 *buffer, - yaffs_ExtendedTags *tags) +int yaffs_rd_chunk_tags_nand(struct yaffs_dev *dev, int nand_chunk, + u8 * buffer, struct yaffs_ext_tags *tags) { int result; - yaffs_ExtendedTags localTags; + struct yaffs_ext_tags local_tags; - int realignedChunkInNAND = chunkInNAND - dev->chunkOffset; + int realigned_chunk = nand_chunk - dev->chunk_offset; - dev->nPageReads++; + dev->n_page_reads++; /* If there are no tags provided, use local tags to get prioritised gc working */ if (!tags) - tags = &localTags; + tags = &local_tags; - if (dev->param.readChunkWithTagsFromNAND) - result = dev->param.readChunkWithTagsFromNAND(dev, realignedChunkInNAND, buffer, - tags); + if (dev->param.read_chunk_tags_fn) + result = + dev->param.read_chunk_tags_fn(dev, realigned_chunk, buffer, + tags); else result = yaffs_tags_compat_rd(dev, - realignedChunkInNAND, - buffer, - tags); - if (tags && - tags->eccResult > YAFFS_ECC_RESULT_NO_ERROR) { - - yaffs_BlockInfo *bi; - bi = yaffs_get_block_info(dev, chunkInNAND/dev->param.nChunksPerBlock); + realigned_chunk, buffer, tags); + if (tags && tags->ecc_result > YAFFS_ECC_RESULT_NO_ERROR) { + + struct yaffs_block_info *bi; + bi = yaffs_get_block_info(dev, + nand_chunk / + dev->param.chunks_per_block); yaffs_handle_chunk_error(dev, bi); } return result; } -int yaffs_wr_chunk_tags_nand(yaffs_Device *dev, - int chunkInNAND, - const __u8 *buffer, - yaffs_ExtendedTags *tags) +int yaffs_wr_chunk_tags_nand(struct yaffs_dev *dev, + int nand_chunk, + const u8 * buffer, struct yaffs_ext_tags *tags) { - dev->nPageWrites++; - - chunkInNAND -= dev->chunkOffset; + dev->n_page_writes++; + nand_chunk -= dev->chunk_offset; if (tags) { - tags->sequenceNumber = dev->sequenceNumber; - tags->chunkUsed = 1; + tags->seq_number = dev->seq_number; + tags->chunk_used = 1; if (!yaffs_validate_tags(tags)) { - T(YAFFS_TRACE_ERROR, - (TSTR("Writing uninitialised tags" TENDSTR))); + yaffs_trace(YAFFS_TRACE_ERROR, "Writing uninitialised tags"); YBUG(); } - T(YAFFS_TRACE_WRITE, - (TSTR("Writing chunk %d tags %d %d" TENDSTR), chunkInNAND, - tags->objectId, tags->chunkId)); + yaffs_trace(YAFFS_TRACE_WRITE, + "Writing chunk %d tags %d %d", + nand_chunk, tags->obj_id, tags->chunk_id); } else { - T(YAFFS_TRACE_ERROR, (TSTR("Writing with no tags" TENDSTR))); + yaffs_trace(YAFFS_TRACE_ERROR, "Writing with no tags"); YBUG(); } - if (dev->param.writeChunkWithTagsToNAND) - return dev->param.writeChunkWithTagsToNAND(dev, chunkInNAND, buffer, - tags); + if (dev->param.write_chunk_tags_fn) + return dev->param.write_chunk_tags_fn(dev, nand_chunk, buffer, + tags); else - return yaffs_tags_compat_wr(dev, - chunkInNAND, - buffer, - tags); + return yaffs_tags_compat_wr(dev, nand_chunk, buffer, tags); } -int yaffs_mark_bad(yaffs_Device *dev, int blockNo) +int yaffs_mark_bad(struct yaffs_dev *dev, int block_no) { - blockNo -= dev->blockOffset; - + block_no -= dev->block_offset; - if (dev->param.markNANDBlockBad) - return dev->param.markNANDBlockBad(dev, blockNo); + if (dev->param.bad_block_fn) + return dev->param.bad_block_fn(dev, block_no); else - return yaffs_tags_compat_mark_bad(dev, blockNo); + return yaffs_tags_compat_mark_bad(dev, block_no); } -int yaffs_query_init_block_state(yaffs_Device *dev, - int blockNo, - yaffs_BlockState *state, - __u32 *sequenceNumber) +int yaffs_query_init_block_state(struct yaffs_dev *dev, + int block_no, + enum yaffs_block_state *state, + u32 * seq_number) { - blockNo -= dev->blockOffset; + block_no -= dev->block_offset; - if (dev->param.queryNANDBlock) - return dev->param.queryNANDBlock(dev, blockNo, state, sequenceNumber); + if (dev->param.query_block_fn) + return dev->param.query_block_fn(dev, block_no, state, + seq_number); else - return yaffs_tags_compat_query_block(dev, blockNo, - state, - sequenceNumber); + return yaffs_tags_compat_query_block(dev, block_no, + state, seq_number); } - -int yaffs_erase_block(struct yaffs_DeviceStruct *dev, - int blockInNAND) +int yaffs_erase_block(struct yaffs_dev *dev, int flash_block) { int result; - blockInNAND -= dev->blockOffset; + flash_block -= dev->block_offset; - dev->nBlockErasures++; + dev->n_erasures++; - result = dev->param.eraseBlockInNAND(dev, blockInNAND); + result = dev->param.erase_fn(dev, flash_block); return result; } -int yaffs_init_nand(struct yaffs_DeviceStruct *dev) +int yaffs_init_nand(struct yaffs_dev *dev) { - if(dev->param.initialiseNAND) - return dev->param.initialiseNAND(dev); + if (dev->param.initialise_flash_fn) + return dev->param.initialise_flash_fn(dev); return YAFFS_OK; } - - -