X-Git-Url: http://aleph1.co.uk/gitweb/?a=blobdiff_plain;f=direct%2Fyaffs_fileem2k.c;h=3fa8d3baeca47f14dc1ea6bde6fc7aa0c2fbc624;hb=7e03669f1fdf249268ca1021522e5d0f45eec19c;hp=cfe992e0de674d0165dd9e31f139473f81b60ea2;hpb=1ffa02489a63129109b66774681c94fe0a8a946a;p=yaffs2.git diff --git a/direct/yaffs_fileem2k.c b/direct/yaffs_fileem2k.c index cfe992e..3fa8d3b 100644 --- a/direct/yaffs_fileem2k.c +++ b/direct/yaffs_fileem2k.c @@ -16,10 +16,11 @@ * This is only intended as test code to test persistence etc. */ -const char *yaffs_flashif2_c_version = "$Id: yaffs_fileem2k.c,v 1.19 2009-10-14 00:01:57 charles Exp $"; +const char *yaffs_flashif2_c_version = "$Id: yaffs_fileem2k.c,v 1.23 2010-01-11 21:43:18 charles Exp $"; #include "yportenv.h" +#include "yaffs_trace.h" #include "yaffs_flashif2.h" #include "yaffs_guts.h" @@ -72,7 +73,7 @@ static int nops_so_far; int ops_multiplier; -static void yflash2_MaybePowerFail(void) +static void yflash2_MaybePowerFail(unsigned int chunkInNAND, int failPoint) { nops_so_far++; @@ -82,6 +83,8 @@ static void yflash2_MaybePowerFail(void) if(simulate_power_failure && remaining_ops < 1){ printf("Simulated power failure after %d operations\n",nops_so_far); + printf(" power failed on chunkInNAND %d, at fail point %d\n", + chunkInNAND, failPoint); exit(0); } } @@ -240,7 +243,7 @@ int yflash2_WriteChunkWithTagsToNAND(yaffs_Device *dev,int chunkInNAND,const __u if(written != dev->nDataBytesPerChunk) return YAFFS_FAIL; } - yflash2_MaybePowerFail(); + // yflash2_MaybePowerFail(chunkInNAND,1); if(tags) { @@ -258,7 +261,7 @@ int yflash2_WriteChunkWithTagsToNAND(yaffs_Device *dev,int chunkInNAND,const __u else { yaffs_PackedTags2 pt; - yaffs_PackTags2(dev,&pt,tags); + yaffs_PackTags2(&pt,tags, !dev->noTagsECC); __u8 * ptab = (__u8 *)&pt; nRead = read(h,localBuffer,sizeof(pt)); @@ -291,7 +294,7 @@ int yflash2_WriteChunkWithTagsToNAND(yaffs_Device *dev,int chunkInNAND,const __u } } - //yflash2_MaybePowerFail(); + //yflash2_MaybePowerFail(chunkInNAND,2); /* Next do the whole write */ if(data) @@ -336,7 +339,7 @@ int yflash2_WriteChunkWithTagsToNAND(yaffs_Device *dev,int chunkInNAND,const __u else { yaffs_PackedTags2 pt; - yaffs_PackTags2(dev,&pt,tags); + yaffs_PackTags2(&pt,tags,!dev->noTagsECC); __u8 * ptab = (__u8 *)&pt; nRead = read(h,localBuffer,sizeof(pt)); @@ -361,7 +364,7 @@ int yflash2_WriteChunkWithTagsToNAND(yaffs_Device *dev,int chunkInNAND,const __u } } - yflash2_MaybePowerFail(); + yflash2_MaybePowerFail(chunkInNAND,3); } return YAFFS_OK; @@ -471,7 +474,7 @@ int yflash2_ReadChunkWithTagsFromNAND(yaffs_Device *dev,int chunkInNAND, __u8 *d { yaffs_PackedTags2 pt; nread= read(h,&pt,sizeof(pt)); - yaffs_UnpackTags2(dev,tags,&pt); + yaffs_UnpackTags2(tags,&pt, !dev->noTagsECC); #ifdef SIMULATE_FAILURES if((chunkInNAND >> 6) == 100) { if(fail300 && tags->eccResult == YAFFS_ECC_RESULT_NO_ERROR){