do{
sprintf(str,"%s/%d",path,i);
h = yaffs_open(str, O_CREAT | O_TRUNC | O_RDWR,S_IREAD | S_IWRITE);
- yaffs_close(h);
if(h >= 0)
{
}
+void fill_files_test(const char *mountpt)
+{
+ int i;
+ yaffs_StartUp();
+
+ for(i = 0; i < 5; i++)
+ {
+ yaffs_mount(mountpt);
+ fill_files(mountpt,2,3,100);
+ yaffs_unmount(mountpt);
+ }
+
+}
+
+void fill_empty_files_test(const char *mountpt)
+{
+ int i;
+ yaffs_StartUp();
+ char name[100];
+ int result = 0;
+
+ int d,f;
+
+ for(i = 0; i < 5; i++)
+ {
+ yaffs_mount(mountpt);
+ for(d = 0; result >= 0 && d < 1000; d++){
+ sprintf(name,"%s/%d",mountpt,d);
+ result= yaffs_mkdir(name,0);
+ printf("creating directory %s result %d\n",name,result);
+
+ for(f = 0; result >= 0 && f < 100; f++){
+ sprintf(name,"%s/%d/%d",mountpt,d,f);
+ result= yaffs_open(name,O_CREAT, 0);
+ yaffs_close(result);
+ printf("creating file %s result %d\n",name,result);
+ }
+ }
+ yaffs_unmount(mountpt);
+ }
+
+}
+
+
void lookup_test(const char *mountpt)
{
//rename_over_test("//////////////////flash///////////////////yaffs1///////////");
- rmdir_test("/M18-1");
+ fill_empty_files_test("/yaffs2/");
//scan_pattern_test("/flash",10000,10);
//short_scan_test("/flash/flash",40000,200);
*/
const char *yaffs_guts_c_version =
- "$Id: yaffs_guts.c,v 1.85 2009-06-08 23:50:44 charles Exp $";
+ "$Id: yaffs_guts.c,v 1.86 2009-07-28 03:04:54 charles Exp $";
#include "yportenv.h"
chunkMax = (dev->internalEndBlock+1) * dev->nChunksPerBlock - 1;
chunkInRange = (((unsigned)(obj->hdrChunk)) >= chunkMin && ((unsigned)(obj->hdrChunk)) <= chunkMax);
- chunkIdOk = chunkInRange || obj->hdrChunk == 0;
+ chunkIdOk = chunkInRange || (obj->hdrChunk == 0);
chunkValid = chunkInRange &&
yaffs_CheckChunkBit(dev,
obj->hdrChunk / dev->nChunksPerBlock,
newTags.chunkId = chunkInInode;
newTags.objectId = in->objectId;
newTags.serialNumber =
- (prevChunkId >= 0) ? prevTags.serialNumber + 1 : 1;
+ (prevChunkId > 0) ? prevTags.serialNumber + 1 : 1;
newTags.byteCount = nBytes;
if (nBytes < 1 || nBytes > dev->totalBytesPerChunk) {
if (newChunkId >= 0) {
yaffs_PutChunkIntoFile(in, chunkInInode, newChunkId, 0);
- if (prevChunkId >= 0)
+ if (prevChunkId > 0)
yaffs_DeleteChunk(dev, prevChunkId, 1, __LINE__);
yaffs_CheckFileSanity(in);
if (name && *name) {
memset(oh->name, 0, sizeof(oh->name));
yaffs_strncpy(oh->name, name, YAFFS_MAX_NAME_LENGTH);
- } else if (prevChunkId >= 0)
+ } else if (prevChunkId > 0)
memcpy(oh->name, oldName, sizeof(oh->name));
else
memset(oh->name, 0, sizeof(oh->name));
/* Create new chunk in NAND */
newChunkId =
yaffs_WriteNewChunkWithTagsToNAND(dev, buffer, &newTags,
- (prevChunkId >= 0) ? 1 : 0);
+ (prevChunkId > 0) ? 1 : 0);
if (newChunkId >= 0) {
in->hdrChunk = newChunkId;
- if (prevChunkId >= 0) {
+ if (prevChunkId > 0) {
yaffs_DeleteChunk(dev, prevChunkId, 1,
__LINE__);
}