*** empty log message ***
[yaffs/.git] / yaffs_guts.c
index 8198e419f0da720bd2fac3fd76534d2a1ed9d17b..9d9dc3e8e88cd25260ee3a2dc67af72b41aac13c 100644 (file)
@@ -14,7 +14,7 @@
  */
  //yaffs_guts.c
 
-const char *yaffs_guts_c_version="$Id: yaffs_guts.c,v 1.19 2003-01-31 00:57:34 charles Exp $";
+const char *yaffs_guts_c_version="$Id: yaffs_guts.c,v 1.21 2003-02-03 18:33:28 charles Exp $";
 
 #include "yportenv.h"
 
@@ -1853,7 +1853,7 @@ int yaffs_RenameObject(yaffs_Object *oldDir, const char *oldName, yaffs_Object *
        yaffs_Object *obj;
        int force = 0;
        
-#ifdef YAFFS_CASE_INSENSITIVE
+#ifdef CONFIG_YAFFS_CASE_INSENSITIVE
        // Special case for WinCE.
        // While look-up is case insensitive, the name isn't.
        // THerefore we might want to change x.txt to X.txt
@@ -2142,7 +2142,7 @@ static int yaffs_AllocateChunk(yaffs_Device *dev,int useReserve)
                dev->allocationPage = 0;
        }
        
-       if(!useReserve &&  dev->nErasedBlocks <= YAFFS_RESERVED_BLOCKS)
+       if(!useReserve &&  dev->nErasedBlocks <= dev->nReservedBlocks)
        {
                // Not enough space to allocate unless we're allowed to use the reserve.
                return -1;
@@ -2184,7 +2184,7 @@ static int yaffs_AllocateChunk(yaffs_Device *dev,int useReserve)
 
 static int yaffs_CheckSpaceForChunkCache(yaffs_Device *dev)
 {
-       return (dev->nErasedBlocks >= YAFFS_RESERVED_BLOCKS);
+       return (dev->nErasedBlocks >= dev->nReservedBlocks);
 }
 
 
@@ -2365,7 +2365,7 @@ static int yaffs_CheckGarbageCollection(yaffs_Device *dev)
        
        //yaffs_DoUnlinkedFileDeletion(dev);
        
-       if(dev->nErasedBlocks <= (YAFFS_RESERVED_BLOCKS + YAFFS_GARBAGE_COLLECT_LOW_WATER))
+       if(dev->nErasedBlocks <= (dev->nReservedBlocks + YAFFS_GARBAGE_COLLECT_LOW_WATER))
        {
                aggressive = 1;
        }               
@@ -2405,7 +2405,7 @@ static int yaffs_CheckGarbageCollection(yaffs_Device *dev)
        
        //yaffs_DoUnlinkedFileDeletion(dev);
        
-       if(dev->nErasedBlocks <= (YAFFS_RESERVED_BLOCKS + 1))
+       if(dev->nErasedBlocks <= (dev->nReservedBlocks + 1))
        {
                aggressive = 1;
        }               
@@ -4602,6 +4602,20 @@ int yaffs_GutsInitialise(yaffs_Device *dev)
        int extraBits;
        int nBlocks;
 
+       if(     dev->nBytesPerChunk != YAFFS_BYTES_PER_CHUNK ||
+       
+               dev->nChunksPerBlock < 2 ||
+               dev->nReservedBlocks < 2 ||
+               dev->startBlock <= 0 ||
+               dev->endBlock <= 0 ||
+               dev->endBlock <= (dev->startBlock + dev->nReservedBlocks)
+         )
+       {
+               //these parameters must be set before stating yaffs
+               // Other parameters startBlock,
+               return YAFFS_FAIL;
+       }
+
 
        
        if(!yaffs_CheckStructures())
@@ -4658,9 +4672,6 @@ int yaffs_GutsInitialise(yaffs_Device *dev)
        }
        dev->chunkGroupSize = 1 << dev->chunkGroupBits;
        
-       // Stuff to be taken out later
-       dev->nBytesPerChunk = YAFFS_BYTES_PER_CHUNK;
-       dev->nChunksPerBlock = YAFFS_CHUNKS_PER_BLOCK;
        
        
        // More device initialisation