*/
//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"
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
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;
static int yaffs_CheckSpaceForChunkCache(yaffs_Device *dev)
{
- return (dev->nErasedBlocks >= YAFFS_RESERVED_BLOCKS);
+ return (dev->nErasedBlocks >= dev->nReservedBlocks);
}
//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;
}
//yaffs_DoUnlinkedFileDeletion(dev);
- if(dev->nErasedBlocks <= (YAFFS_RESERVED_BLOCKS + 1))
+ if(dev->nErasedBlocks <= (dev->nReservedBlocks + 1))
{
aggressive = 1;
}
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())
}
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