- nRead = read(h, localBuffer,dev->nDataBytesPerChunk);
- for(i = error = 0; i < dev->nDataBytesPerChunk && !error; i++){
- if(REPORT_ERROR && localBuffer[i] != 0xFF){
- printf("nand simulation: chunk %d data byte %d was %0x2\n",
- chunkInNAND,i,localBuffer[i]);
- error = 1;
+ written = write(h,localBuffer,dev->nDataBytesPerChunk);
+
+ if(yaffs_testPartialWrite){
+ close(h);
+ exit(1);
+ }
+
+
+ if(written != dev->nDataBytesPerChunk) return YAFFS_FAIL;
+ }
+ // yflash2_MaybePowerFail(chunkInNAND,1);
+
+ if(tags)
+ {
+ pos = (chunkInNAND % (PAGES_PER_BLOCK * BLOCKS_PER_HANDLE)) * PAGE_SIZE + PAGE_DATA_SIZE ;
+ h = filedisk.handle[(chunkInNAND / (PAGES_PER_BLOCK * BLOCKS_PER_HANDLE))];
+
+ lseek(h,pos,SEEK_SET);
+
+ if( 0 && dev->isYaffs2)
+ {
+
+ written = write(h,tags,sizeof(yaffs_ExtendedTags));
+ if(written != sizeof(yaffs_ExtendedTags)) return YAFFS_FAIL;
+ }
+ else
+ {
+ yaffs_PackedTags2 pt;
+ yaffs_PackTags2(dev,&pt,tags);
+ __u8 * ptab = (__u8 *)&pt;
+
+ nRead = read(h,localBuffer,sizeof(pt));
+ for(i = error = 0; REPORT_ERROR && i < sizeof(pt) && !error; i++){
+ if(localBuffer[i] != 0xFF){
+ printf("nand simulation: chunk %d oob byte %d was %0x2\n",
+ chunkInNAND,i,localBuffer[i]);
+ error = 1;
+ }