* This is only intended as test code to test persistence etc.
*/
-const char *yaffs_flashif2_c_version = "$Id: yaffs_fileem2k.c,v 1.22 2010-01-11 04:06:47 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"
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));
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));
{
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){
*/
-const char *yaffs_ramem2k_c_version = "$Id: yaffs_ramem2k.c,v 1.6 2010-01-11 04:06:47 charles Exp $";
+const char *yaffs_ramem2k_c_version = "$Id: yaffs_ramem2k.c,v 1.7 2010-01-11 21:43:18 charles Exp $";
#ifndef __KERNEL__
#define CONFIG_YAFFS_RAM_ENABLED
{
x = &ned.block[blk]->page[pg]->data[PAGE_DATA_SIZE];
- yaffs_PackTags2(dev,(yaffs_PackedTags2 *)x,tags);
+ yaffs_PackTags2((yaffs_PackedTags2 *)x,tags, !dev->noTagsECC);
}
{
x = &ned.block[blk]->page[pg]->data[PAGE_DATA_SIZE];
- yaffs_UnpackTags2(dev,tags,(yaffs_PackedTags2 *)x);
+ yaffs_UnpackTags2(tags,(yaffs_PackedTags2 *)x, !dev->noTagsECC);
}
return YAFFS_OK;
#define chunkSize 2048
#define spareSize 64
-const char * mkyaffsimage_c_version = "$Id: mkyaffs2image.c,v 1.4 2007-02-14 01:09:06 wookey Exp $";
+const char * mkyaffsimage_c_version = "$Id: mkyaffs2image.c,v 1.5 2010-01-11 21:43:18 charles Exp $";
typedef struct
nPages++;
- yaffs_PackTags2(&pt,&t);
+ yaffs_PackTags2(&pt,&t,1);
// return write(outFile,&pt,sizeof(yaffs_PackedTags2));
return write(outFile,&pt,spareSize);
/* mtd interface for YAFFS2 */
const char *yaffs_mtdif2_c_version =
- "$Id: yaffs_mtdif2.c,v 1.25 2010-01-11 04:06:46 charles Exp $";
+ "$Id: yaffs_mtdif2.c,v 1.26 2010-01-11 21:43:18 charles Exp $";
#include "yportenv.h"
#include "yaffs_trace.h"
pt2tp = (yaffs_PackedTags2TagsPart *)(data + dev->nDataBytesPerChunk);
yaffs_PackTags2TagsPart(pt2tp, tags);
} else
- yaffs_PackTags2(dev, &pt, tags);
+ yaffs_PackTags2(&pt, tags, !dev->noTagsECC);
#if (LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 17))
ops.mode = MTD_OOB_AUTO;
} else {
if (tags) {
memcpy(packed_tags_ptr, dev->spareBuffer, packed_tags_size);
- yaffs_UnpackTags2(dev, tags, &pt);
+ yaffs_UnpackTags2(tags, &pt, !dev->noTagsECC);
}
}
}
-void yaffs_PackTags2(yaffs_Device *dev, yaffs_PackedTags2 *pt, const yaffs_ExtendedTags *t)
+void yaffs_PackTags2(yaffs_PackedTags2 *pt, const yaffs_ExtendedTags *t, int tagsECC)
{
yaffs_PackTags2TagsPart(&pt->t, t);
- if(!dev->noTagsECC)
+ if(tagsECC)
yaffs_ECCCalculateOther((unsigned char *)&pt->t,
sizeof(yaffs_PackedTags2TagsPart),
&pt->ecc);
}
-void yaffs_UnpackTags2(yaffs_Device *dev, yaffs_ExtendedTags *t, yaffs_PackedTags2 *pt)
+void yaffs_UnpackTags2(yaffs_ExtendedTags *t, yaffs_PackedTags2 *pt, int tagsECC)
{
yaffs_ECCResult eccResult = YAFFS_ECC_RESULT_NO_ERROR;
if (pt->t.sequenceNumber != 0xFFFFFFFF &&
- !dev->noTagsECC){
+ tagsECC){
/* Chunk is in use and we need to do ECC */
yaffs_ECCOther ecc;
} yaffs_PackedTags2;
/* Full packed tags with ECC, used for oob tags */
-void yaffs_PackTags2(yaffs_Device *dev, yaffs_PackedTags2 *pt, const yaffs_ExtendedTags *t);
-void yaffs_UnpackTags2(yaffs_Device *dev, yaffs_ExtendedTags *t, yaffs_PackedTags2 *pt);
+void yaffs_PackTags2(yaffs_PackedTags2 *pt, const yaffs_ExtendedTags *t, int tagsECC);
+void yaffs_UnpackTags2(yaffs_ExtendedTags *t, yaffs_PackedTags2 *pt, int tagsECC);
/* Only the tags part (no ECC for use with inband tags */
void yaffs_PackTags2TagsPart(yaffs_PackedTags2TagsPart *pt, const yaffs_ExtendedTags *t);