* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
- * $Id: yaffs_tagscompat.c,v 1.1 2004-11-03 08:14:07 charles Exp $
+ * $Id: yaffs_tagscompat.c,v 1.3 2005-07-31 06:47:12 marty Exp $
*/
#include "yaffs_guts.h"
#include "yaffs_ecc.h"
static void yaffs_HandleReadDataError(yaffs_Device *dev,int chunkInNAND);
+#ifdef NOTYET
static void yaffs_CheckWrittenBlock(yaffs_Device *dev,int chunkInNAND);
static void yaffs_HandleWriteChunkOk(yaffs_Device *dev,int chunkInNAND,const __u8 *data, const yaffs_Spare *spare);
static void yaffs_HandleUpdateChunk(yaffs_Device *dev,int chunkInNAND, const yaffs_Spare *spare);
static void yaffs_HandleWriteChunkError(yaffs_Device *dev,int chunkInNAND);
-
+#endif
static const char yaffs_countBitsTable[256] =
return retVal;
}
-
-
+#ifdef NOTYET
static int yaffs_CheckChunkErased(struct yaffs_DeviceStruct *dev,int chunkInNAND)
{
return YAFFS_OK;
}
-
+#endif
#if 0
int yaffs_EraseBlockInNAND(struct yaffs_DeviceStruct *dev,int blockInNAND)
}
+#ifdef NOTYET
static void yaffs_CheckWrittenBlock(yaffs_Device *dev,int chunkInNAND)
{
}
return 1;
}
+#endif /* NOTYET */
#if 0
typedef struct
tags.byteCount = eTags->byteCount;
tags.serialNumber = eTags->serialNumber;
+// NCB
+ if (!dev->useNANDECC && data)
+ {
+ yaffs_CalcECC(data,&spare);
+ }
+
+// /NCB
yaffs_LoadTagsIntoSpare(&spare,&tags);
}
yaffs_Tags tags;
yaffs_ECCResult eccResult;
+// NCB
+ static yaffs_Spare spareFF;
+ static int init;
+
+ if(!init)
+ {
+ memset(&spareFF,0xFF,sizeof(spareFF));
+ init = 1;
+ }
+// /NCB
if(yaffs_ReadChunkFromNAND(dev,chunkInNAND,data,&spare,&eccResult,1))
{
+// added NCB - eTags may be NULL
+ if (eTags) {
+
int deleted = (yaffs_CountBits(spare.pageStatus) < 7) ? 1 : 0;
yaffs_GetTagsFromSpare(dev,&spare,&tags);
eTags->eccResult = eccResult;
eTags->blockBad = 0; // We're reading it therefore it is not a bad block
+// NCB added 18/2/2005
+ eTags->chunkUsed = (memcmp(&spareFF,&spare,sizeof(spareFF)) != 0) ? 1:0;
+ }
+
return YAFFS_OK;
}
else