X-Git-Url: http://www.aleph1.co.uk/gitweb/?a=blobdiff_plain;f=direct%2Fyaffs_ramem2k.c;h=b3a8724536fc3066a016bd3cd331bad299572b15;hb=f967cb631f26f3333bd42c1fb04c5c59cecd9619;hp=7ce6a3edeb1d68a44a8c71d58fbd26ef9666da2a;hpb=18f4bca2de98dd4f8ebec9760487acafdd2549a3;p=yaffs2.git diff --git a/direct/yaffs_ramem2k.c b/direct/yaffs_ramem2k.c index 7ce6a3e..b3a8724 100644 --- a/direct/yaffs_ramem2k.c +++ b/direct/yaffs_ramem2k.c @@ -1,8 +1,7 @@ /* - * YAFFS: Yet another FFS. A NAND-flash specific file system. - * yaffs_ramem.c NAND emulation on top of a chunk of RAM + * YAFFS: Yet Another Flash File System. A NAND-flash specific file system. * - * Copyright (C) 2002 Aleph One Ltd. + * Copyright (C) 2002-2010 Aleph One Ltd. * for Toby Churchill Ltd and Brightstar Engineering * * Created by Charles Manning @@ -10,12 +9,14 @@ * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. - * */ - //yaffs_ramem2k.c: RAM emulation in-kernel for 2K pages (YAFFS2) + +/* + * yaffs_ramem2k.c: RAM emulation in-kernel for 2K pages (YAFFS2) + */ -const char *yaffs_ramem2k_c_version = "$Id: yaffs_ramem2k.c,v 1.1 2005-08-09 01:00:37 charles Exp $"; +const char *yaffs_ramem2k_c_version = "$Id: yaffs_ramem2k.c,v 1.8 2010-02-18 01:18:04 charles Exp $"; #ifndef __KERNEL__ #define CONFIG_YAFFS_RAM_ENABLED @@ -26,6 +27,7 @@ const char *yaffs_ramem2k_c_version = "$Id: yaffs_ramem2k.c,v 1.1 2005-08-09 01: #ifdef CONFIG_YAFFS_RAM_ENABLED #include "yportenv.h" +#include "yaffs_trace.h" #include "yaffs_nandemul2k.h" #include "yaffs_guts.h" @@ -189,7 +191,7 @@ static int CheckInit(void) return 1; } -int nandemul2k_WriteChunkWithTagsToNAND(yaffs_Device *dev,int chunkInNAND,const __u8 *data, yaffs_ExtendedTags *tags) +int nandemul2k_WriteChunkWithTagsToNAND(yaffs_Device *dev,int chunkInNAND,const __u8 *data, const yaffs_ExtendedTags *tags) { int blk; int pg; @@ -219,7 +221,7 @@ int nandemul2k_WriteChunkWithTagsToNAND(yaffs_Device *dev,int chunkInNAND,const { x = &ned.block[blk]->page[pg]->data[PAGE_DATA_SIZE]; - yaffs_PackTags2((yaffs_PackedTags2 *)x,tags); + yaffs_PackTags2((yaffs_PackedTags2 *)x,tags, !dev->param.noTagsECC); } @@ -255,7 +257,7 @@ int nandemul2k_ReadChunkWithTagsFromNAND(yaffs_Device *dev,int chunkInNAND, __u8 { x = &ned.block[blk]->page[pg]->data[PAGE_DATA_SIZE]; - yaffs_UnpackTags2(tags,(yaffs_PackedTags2 *)x); + yaffs_UnpackTags2(tags,(yaffs_PackedTags2 *)x, !dev->param.noTagsECC); } return YAFFS_OK; @@ -326,14 +328,14 @@ int nandemul2k_MarkNANDBlockBad(struct yaffs_DeviceStruct *dev, int blockNo) } -int nandemul2k_QueryNANDBlock(struct yaffs_DeviceStruct *dev, int blockNo, yaffs_BlockState *state, int *sequenceNumber) +int nandemul2k_QueryNANDBlock(struct yaffs_DeviceStruct *dev, int blockNo, yaffs_BlockState *state, __u32 *sequenceNumber) { yaffs_ExtendedTags tags; int chunkNo; *sequenceNumber = 0; - chunkNo = blockNo * dev->nChunksPerBlock; + chunkNo = blockNo * dev->param.nChunksPerBlock; nandemul2k_ReadChunkWithTagsFromNAND(dev,chunkNo,NULL,&tags); if(tags.blockBad)