X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs2.git;a=blobdiff_plain;f=yaffs_nand.c;h=cb2a1629f2008e65a7efc176edc918cb712f14b5;hp=0a76ca020d23ef2f59c55740b09e52d7ee259fec;hb=0333f489a25b05a4c0176258204eee1db9e8c9e0;hpb=3a263f2d5074abcd6129dff4f1bd1a0ab45a04da diff --git a/yaffs_nand.c b/yaffs_nand.c index 0a76ca0..cb2a162 100644 --- a/yaffs_nand.c +++ b/yaffs_nand.c @@ -1,7 +1,7 @@ /* * YAFFS: Yet Another Flash File System. A NAND-flash specific file system. * - * Copyright (C) 2002-2007 Aleph One Ltd. + * Copyright (C) 2002-2010 Aleph One Ltd. * for Toby Churchill Ltd and Brightstar Engineering * * Created by Charles Manning @@ -11,9 +11,6 @@ * published by the Free Software Foundation. */ -const char *yaffs_nand_c_version = - "$Id: yaffs_nand.c,v 1.11 2009-09-09 03:03:01 charles Exp $"; - #include "yaffs_nand.h" #include "yaffs_tagscompat.h" #include "yaffs_tagsvalidity.h" @@ -35,8 +32,8 @@ int yaffs_ReadChunkWithTagsFromNAND(yaffs_Device *dev, int chunkInNAND, if (!tags) tags = &localTags; - if (dev->readChunkWithTagsFromNAND) - result = dev->readChunkWithTagsFromNAND(dev, realignedChunkInNAND, buffer, + if (dev->param.readChunkWithTagsFromNAND) + result = dev->param.readChunkWithTagsFromNAND(dev, realignedChunkInNAND, buffer, tags); else result = yaffs_TagsCompatabilityReadChunkWithTagsFromNAND(dev, @@ -46,7 +43,7 @@ int yaffs_ReadChunkWithTagsFromNAND(yaffs_Device *dev, int chunkInNAND, if (tags && tags->eccResult > YAFFS_ECC_RESULT_NO_ERROR) { - yaffs_BlockInfo *bi = yaffs_GetBlockInfo(dev, chunkInNAND/dev->nChunksPerBlock); + yaffs_BlockInfo *bi = yaffs_GetBlockInfo(dev, chunkInNAND/dev->param.nChunksPerBlock); yaffs_HandleChunkError(dev, bi); } @@ -80,8 +77,8 @@ int yaffs_WriteChunkWithTagsToNAND(yaffs_Device *dev, YBUG(); } - if (dev->writeChunkWithTagsToNAND) - return dev->writeChunkWithTagsToNAND(dev, chunkInNAND, buffer, + if (dev->param.writeChunkWithTagsToNAND) + return dev->param.writeChunkWithTagsToNAND(dev, chunkInNAND, buffer, tags); else return yaffs_TagsCompatabilityWriteChunkWithTagsToNAND(dev, @@ -95,8 +92,8 @@ int yaffs_MarkBlockBad(yaffs_Device *dev, int blockNo) blockNo -= dev->blockOffset; - if (dev->markNANDBlockBad) - return dev->markNANDBlockBad(dev, blockNo); + if (dev->param.markNANDBlockBad) + return dev->param.markNANDBlockBad(dev, blockNo); else return yaffs_TagsCompatabilityMarkNANDBlockBad(dev, blockNo); } @@ -108,8 +105,8 @@ int yaffs_QueryInitialBlockState(yaffs_Device *dev, { blockNo -= dev->blockOffset; - if (dev->queryNANDBlock) - return dev->queryNANDBlock(dev, blockNo, state, sequenceNumber); + if (dev->param.queryNANDBlock) + return dev->param.queryNANDBlock(dev, blockNo, state, sequenceNumber); else return yaffs_TagsCompatabilityQueryNANDBlock(dev, blockNo, state, @@ -126,14 +123,16 @@ int yaffs_EraseBlockInNAND(struct yaffs_DeviceStruct *dev, dev->nBlockErasures++; - result = dev->eraseBlockInNAND(dev, blockInNAND); + result = dev->param.eraseBlockInNAND(dev, blockInNAND); return result; } int yaffs_InitialiseNAND(struct yaffs_DeviceStruct *dev) { - return dev->initialiseNAND(dev); + if(dev->param.initialiseNAND) + return dev->param.initialiseNAND(dev); + return YAFFS_OK; }