X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs2.git;a=blobdiff_plain;f=patches%2Fyaffs_mtdif2.c;h=354745210f63c1bd6357641cda604ecb9d3eb865;hp=8f73ac4e25c9dfe63d2b71949d9081b4910a5cb4;hb=6014fce5c65757724aef9033f2a710da324f2523;hpb=0a0da938621f6eec378c7b3c173ce815a786759f diff --git a/patches/yaffs_mtdif2.c b/patches/yaffs_mtdif2.c index 8f73ac4..3547452 100644 --- a/patches/yaffs_mtdif2.c +++ b/patches/yaffs_mtdif2.c @@ -1,7 +1,7 @@ /* * YAFFS: Yet another FFS. A NAND-flash specific file system. * - * Copyright (C) 2002 Aleph One Ltd. + * Copyright (C) 2002-2011 Aleph One Ltd. * for Toby Churchill Ltd and Brightstar Engineering * * Created by Charles Manning @@ -28,10 +28,10 @@ const char *yaffs_mtdif2_c_version = #include "yaffs_packedtags2.h" -void nandmtd2_pt2buf(yaffs_Device *dev, yaffs_PackedTags2 *pt, int is_raw) +void nandmtd2_pt2buf(struct yaffs_dev *dev, yaffs_PackedTags2 *pt, int is_raw) { struct mtd_info *mtd = (struct mtd_info *)(dev->genericDevice); - __u8 *ptab = (__u8 *)pt; /* packed tags as bytes */ + u8 *ptab = (u8 *)pt; /* packed tags as bytes */ int i, j = 0, k, n; @@ -48,7 +48,7 @@ void nandmtd2_pt2buf(yaffs_Device *dev, yaffs_PackedTags2 *pt, int is_raw) if (n == 0) { T(YAFFS_TRACE_ERROR, (TSTR("No OOB space for tags" TENDSTR))); - YBUG(); + BUG(); } for (i = 0; i < sizeof(yaffs_PackedTags2); i++) { @@ -58,7 +58,7 @@ void nandmtd2_pt2buf(yaffs_Device *dev, yaffs_PackedTags2 *pt, int is_raw) n = mtd->oobinfo.oobfree[j][1]; if (n == 0) { T(YAFFS_TRACE_ERROR, (TSTR("No OOB space for tags" TENDSTR))); - YBUG(); + BUG(); } } dev->spareBuffer[k] = ptab[i]; @@ -69,11 +69,11 @@ void nandmtd2_pt2buf(yaffs_Device *dev, yaffs_PackedTags2 *pt, int is_raw) } -void nandmtd2_buf2pt(yaffs_Device *dev, yaffs_PackedTags2 *pt, int is_raw) +void nandmtd2_buf2pt(struct yaffs_dev *dev, yaffs_PackedTags2 *pt, int is_raw) { struct mtd_info *mtd = (struct mtd_info *)(dev->genericDevice); int i, j = 0, k, n; - __u8 *ptab = (__u8 *)pt; /* packed tags as bytes */ + u8 *ptab = (u8 *)pt; /* packed tags as bytes */ if (!is_raw) { @@ -86,7 +86,7 @@ void nandmtd2_buf2pt(yaffs_Device *dev, yaffs_PackedTags2 *pt, int is_raw) if (n == 0) { T(YAFFS_TRACE_ERROR, (TSTR("No space in OOB for tags" TENDSTR))); - YBUG(); + BUG(); } for (i = 0; i < sizeof(yaffs_PackedTags2); i++) { @@ -96,7 +96,7 @@ void nandmtd2_buf2pt(yaffs_Device *dev, yaffs_PackedTags2 *pt, int is_raw) n = mtd->oobinfo.oobfree[j][1]; if (n == 0) { T(YAFFS_TRACE_ERROR, (TSTR("No space in OOB for tags" TENDSTR))); - YBUG(); + BUG(); } } ptab[i] = dev->spareBuffer[k]; @@ -107,22 +107,22 @@ void nandmtd2_buf2pt(yaffs_Device *dev, yaffs_PackedTags2 *pt, int is_raw) } -int nandmtd2_WriteChunkWithTagsToNAND(yaffs_Device * dev, int chunkInNAND, - const __u8 * data, - const yaffs_ExtendedTags * tags) +int nandmtd2_WriteChunkWithTagsToNAND(struct yaffs_dev * dev, int nand_chunk, + const u8 * data, + const struct yaffs_ext_tags * tags) { struct mtd_info *mtd = (struct mtd_info *)(dev->genericDevice); size_t dummy; int retval = 0; - loff_t addr = ((loff_t) chunkInNAND) * dev->nBytesPerChunk; + loff_t addr = ((loff_t) nand_chunk) * dev->n_bytesPerChunk; yaffs_PackedTags2 pt; T(YAFFS_TRACE_MTD, (TSTR ("nandmtd2_WriteChunkWithTagsToNAND chunk %d data %p tags %p" - TENDSTR), chunkInNAND, data, tags)); + TENDSTR), nand_chunk, data, tags)); if (tags) { yaffs_PackTags2(&pt, tags); @@ -131,7 +131,7 @@ int nandmtd2_WriteChunkWithTagsToNAND(yaffs_Device * dev, int chunkInNAND, if (data && tags) { nandmtd2_pt2buf(dev, &pt, 0); retval = - mtd->write_ecc(mtd, addr, dev->nBytesPerChunk, + mtd->write_ecc(mtd, addr, dev->n_bytesPerChunk, &dummy, data, dev->spareBuffer, NULL); @@ -140,7 +140,7 @@ int nandmtd2_WriteChunkWithTagsToNAND(yaffs_Device * dev, int chunkInNAND, T(YAFFS_TRACE_ALWAYS, (TSTR ("Write chunk with null tags or data!" TENDSTR))); - YBUG(); + BUG(); } if (retval == 0) @@ -149,32 +149,32 @@ int nandmtd2_WriteChunkWithTagsToNAND(yaffs_Device * dev, int chunkInNAND, return YAFFS_FAIL; } -int nandmtd2_ReadChunkWithTagsFromNAND(yaffs_Device * dev, int chunkInNAND, - __u8 * data, yaffs_ExtendedTags * tags) +int nandmtd2_ReadChunkWithTagsFromNAND(struct yaffs_dev * dev, int nand_chunk, + u8 * data, struct yaffs_ext_tags * tags) { struct mtd_info *mtd = (struct mtd_info *)(dev->genericDevice); size_t dummy; int retval = 0; - loff_t addr = ((loff_t) chunkInNAND) * dev->nBytesPerChunk; + loff_t addr = ((loff_t) nand_chunk) * dev->n_bytesPerChunk; yaffs_PackedTags2 pt; T(YAFFS_TRACE_MTD, (TSTR ("nandmtd2_ReadChunkWithTagsToNAND chunk %d data %p tags %p" - TENDSTR), chunkInNAND, data, tags)); + TENDSTR), nand_chunk, data, tags)); if (0 && data && tags) { retval = - mtd->read_ecc(mtd, addr, dev->nBytesPerChunk, + mtd->read_ecc(mtd, addr, dev->n_bytesPerChunk, &dummy, data, dev->spareBuffer, NULL); nandmtd2_buf2pt(dev, &pt, 0); } else { if (data) retval = - mtd->read(mtd, addr, dev->nBytesPerChunk, &dummy, + mtd->read(mtd, addr, dev->n_bytesPerChunk, &dummy, data); if (tags) { retval = @@ -185,7 +185,7 @@ int nandmtd2_ReadChunkWithTagsFromNAND(yaffs_Device * dev, int chunkInNAND, } if (tags) - yaffs_UnpackTags2(tags, &pt); + yaffs_unpack_tags2(tags, &pt); if (retval == 0) return YAFFS_OK; @@ -193,17 +193,17 @@ int nandmtd2_ReadChunkWithTagsFromNAND(yaffs_Device * dev, int chunkInNAND, return YAFFS_FAIL; } -int nandmtd2_MarkNANDBlockBad(struct yaffs_DeviceStruct *dev, int blockNo) +int nandmtd2_MarkNANDBlockBad(struct yaffs_dev *dev, int block_no) { struct mtd_info *mtd = (struct mtd_info *)(dev->genericDevice); int retval; T(YAFFS_TRACE_MTD, - (TSTR("nandmtd2_MarkNANDBlockBad %d" TENDSTR), blockNo)); + (TSTR("nandmtd2_MarkNANDBlockBad %d" TENDSTR), block_no)); retval = mtd->block_markbad(mtd, - blockNo * dev->nChunksPerBlock * - dev->nBytesPerChunk); + block_no * dev->chunks_per_block * + dev->n_bytesPerChunk); if (retval == 0) return YAFFS_OK; @@ -212,41 +212,41 @@ int nandmtd2_MarkNANDBlockBad(struct yaffs_DeviceStruct *dev, int blockNo) } -int nandmtd2_QueryNANDBlock(struct yaffs_DeviceStruct *dev, int blockNo, - yaffs_BlockState * state, int *sequenceNumber) +int nandmtd2_QueryNANDBlock(struct yaffs_dev *dev, int block_no, + enum yaffs_block_state * state, int *seq_number) { struct mtd_info *mtd = (struct mtd_info *)(dev->genericDevice); int retval; T(YAFFS_TRACE_MTD, - (TSTR("nandmtd2_QueryNANDBlock %d" TENDSTR), blockNo)); + (TSTR("nandmtd2_QueryNANDBlock %d" TENDSTR), block_no)); retval = mtd->block_isbad(mtd, - blockNo * dev->nChunksPerBlock * - dev->nBytesPerChunk); + block_no * dev->chunks_per_block * + dev->n_bytesPerChunk); if (retval) { T(YAFFS_TRACE_MTD, (TSTR("block is bad" TENDSTR))); *state = YAFFS_BLOCK_STATE_DEAD; - *sequenceNumber = 0; + *seq_number = 0; } else { - yaffs_ExtendedTags t; + struct yaffs_ext_tags t; nandmtd2_ReadChunkWithTagsFromNAND(dev, - blockNo * - dev->nChunksPerBlock, NULL, + block_no * + dev->chunks_per_block, NULL, &t); - if (t.chunkUsed) { - *sequenceNumber = t.sequenceNumber; + if (t.chunk_used) { + *seq_number = t.seq_number; *state = YAFFS_BLOCK_STATE_NEEDS_SCANNING; } else { - *sequenceNumber = 0; + *seq_number = 0; *state = YAFFS_BLOCK_STATE_EMPTY; } T(YAFFS_TRACE_MTD, - (TSTR("block is OK seq %d state %d" TENDSTR), *sequenceNumber, + (TSTR("block is OK seq %d state %d" TENDSTR), *seq_number, *state)); }