printf("Flush\n");
- yaffs_FlushFile(f);
+ yaffs_FlushFile(f,1);
yaffs_ApplyToDirectoryChildren(yaffs_Root(dev),yaffs_DumpObject);
yaffs_DumpObject(f);
- yaffs_FlushFile(f);
+ yaffs_FlushFile(f,1);
written = yaffs_WriteDataToFile(f,testStr2,i,strlen(testStr2));
}
- yaffs_FlushFile(f);
+ yaffs_FlushFile(f,1);
yaffs_DeleteFile(f);
f = yaffs_FindObjectByName(yaffs_Root(dev),"Name1");
written = yaffs_WriteDataToFile(f,testStr2,i,strlen(testStr2));
}
- yaffs_FlushFile(f);
+ yaffs_FlushFile(f,1);
yaffs_DeleteFile(f);
f = yaffs_FindObjectByName(yaffs_Root(dev),"Name1");
written = yaffs_WriteDataToFile(f,testStr2,i,strlen(testStr2));
}
- yaffs_FlushFile(f);
+ yaffs_FlushFile(f,1);
yaffs_DeleteFile(f);
}
printf("Flush\n");
- yaffs_FlushFile(f);
+ yaffs_FlushFile(f,1);
yaffs_ReadDataFromFile(f,data,1000,50);
data[50] = 0;
- yaffs_FlushFile(f);
+ yaffs_FlushFile(f,1);
printf("Unlink file: %d\n",yaffs_Unlink(yaffs_Root(dev),"Rename"));
- yaffs_FlushFile(f);
+ yaffs_FlushFile(f,1);
printf("Unlink file: %d\n",yaffs_Unlink(yaffs_Root(dev),"Rename"));
written = yaffs_WriteDataToFile(f,testStr2,0,strlen(testStr2));
}
+}
+void TestTimeBackgroundDeleteFocussed(yaffs_Device *dev)
+{
+ yaffs_Object *f;
+ yaffs_Object *lnf;
+
+
+ int x;
+ int i,j;
+ int b;
+ int written;
+
+
+ printf("Exisiting objects\n");
+ yaffs_ApplyToDirectoryChildren(yaffs_Root(dev),yaffs_DumpObject);
+ printf("Exisiting objects in lost+found\n");
+ lnf = yaffs_FindObjectByName(yaffs_Root(dev),YAFFS_LOSTNFOUND_NAME);
+ yaffs_ApplyToDirectoryChildren(lnf,yaffs_DumpObject);
+
+ printf("Start\n");
+
+
+ for(j = 0; j < 20; j++)
+ {
+ printf("Run %d\n",j);
+
+ f = yaffs_FindObjectByName(yaffs_Root(dev),"Name1");
+ if(f)
+ {
+ printf("Found\n");
+ }
+ else
+ {
+ f = yaffs_MknodFile(yaffs_Root(dev),"Name1",0,0,0);
+ printf("Created\n");
+ }
+
+ printf("@@@@@@@ Run %d, object %d\n",j,f->objectId);
+
+ for(i = 0; i < 1000000; i+=20)
+ {
+
+ written = yaffs_WriteDataToFile(f,testStr,i,100);
+ }
+
+ yaffs_FlushFile(f,1);
+
+ yaffs_DeleteFile(f);
+ }
+
}
int main(int argc,char *argv[])
int nBlocks;
#if YAFFS_FILEEM
- nBlocks =(4 * 1024 * 1024) / (YAFFS_CHUNKS_PER_BLOCK * YAFFS_BYTES_PER_CHUNK) ;
+ nBlocks =(2 * 1024 * 1024) / (YAFFS_CHUNKS_PER_BLOCK * YAFFS_BYTES_PER_CHUNK) ;
device.writeChunkToNAND = yaffs_FEWriteChunkToNAND;
device.readChunkFromNAND = yaffs_FEReadChunkFromNAND;
device.eraseBlockInNAND = yaffs_FEEraseBlockInNAND;
device.endBlock = nBlocks;
#endif
+ device.nShortOpCaches = 10;
+
+
yaffs_GutsInitialise(&device);
// yaffs_GutsTest();
- TestTime(&device);
+ TestTimeBackgroundDeleteFocussed(&device);
printf("Cache hits %d\n",device.cacheHits);
printf("Retired blocks %d\n",device.nRetiredBlocks);
+ printf("Deletions %d\n",device.nDeletions);
+ printf("Unmarked deletions %d\n",device.nUnmarkedDeletions);
+
exit(0);
}