X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs2.git;a=blobdiff_plain;f=direct%2Fyaffs_fileem2k.c;h=4c5e200ed9f0c5384efbdb136175b59f4abdd7d2;hp=0a9b9e337009192cec6305d652c45502faafab63;hb=e1b8e63260986ab7afec3c379e7a320677c95846;hpb=f216bcabdaf791aa93ad2e58c1d747d2d8bd6617;ds=sidebyside diff --git a/direct/yaffs_fileem2k.c b/direct/yaffs_fileem2k.c index 0a9b9e3..4c5e200 100644 --- a/direct/yaffs_fileem2k.c +++ b/direct/yaffs_fileem2k.c @@ -15,7 +15,7 @@ // This provides a YAFFS nand emulation on a file for emulating 2kB pages. // THis is only intended as test code to test persistence etc. -const char *yaffs_flashif_c_version = "$Id: yaffs_fileem2k.c,v 1.2 2004-11-22 03:22:25 charles Exp $"; +const char *yaffs_flashif_c_version = "$Id: yaffs_fileem2k.c,v 1.4 2005-07-18 23:12:00 charles Exp $"; #include "yportenv.h" @@ -55,7 +55,7 @@ typedef struct static yflash_Device filedisk; -static int CheckInit(yaffs_Device *dev) +static int CheckInit(void) { static int initialised = 0; @@ -107,16 +107,28 @@ static int CheckInit(yaffs_Device *dev) } } } + else + { + filedisk.nBlocks = fSize/(BLOCK_SIZE); + } return 1; } + +int yflash_GetNumberOfBlocks(void) +{ + CheckInit(); + + return filedisk.nBlocks; +} + int yflash_WriteChunkWithTagsToNAND(yaffs_Device *dev,int chunkInNAND,const __u8 *data, yaffs_ExtendedTags *tags) { int written; int pos; - CheckInit(dev); + CheckInit(); @@ -133,7 +145,7 @@ int yflash_WriteChunkWithTagsToNAND(yaffs_Device *dev,int chunkInNAND,const __u8 { pos = chunkInNAND * PAGE_SIZE + PAGE_DATA_SIZE; lseek(filedisk.handle,pos,SEEK_SET); - if(dev->isYaffs2) + if( 0 && dev->isYaffs2) { written = write(filedisk.handle,tags,sizeof(yaffs_ExtendedTags)); @@ -160,7 +172,7 @@ int yflash_MarkNANDBlockBad(struct yaffs_DeviceStruct *dev, int blockNo) yaffs_PackedTags2 pt; - CheckInit(dev); + CheckInit(); memset(&pt,0,sizeof(pt)); lseek(filedisk.handle,(blockNo * dev->nChunksPerBlock) * PAGE_SIZE + PAGE_DATA_SIZE,SEEK_SET); @@ -190,7 +202,7 @@ int yflash_ReadChunkWithTagsFromNAND(yaffs_Device *dev,int chunkInNAND, __u8 *da int nread; int pos; - CheckInit(dev); + CheckInit(); @@ -207,7 +219,7 @@ int yflash_ReadChunkWithTagsFromNAND(yaffs_Device *dev,int chunkInNAND, __u8 *da { pos = chunkInNAND * PAGE_SIZE + PAGE_DATA_SIZE; lseek(filedisk.handle,pos,SEEK_SET); - if(dev->isYaffs2) + if(0 && dev->isYaffs2) { nread= read(filedisk.handle,tags,sizeof(yaffs_ExtendedTags)); if(nread != sizeof(yaffs_ExtendedTags)) return YAFFS_FAIL; @@ -240,7 +252,7 @@ int yflash_EraseBlockInNAND(yaffs_Device *dev, int blockNumber) int i; - CheckInit(dev); + CheckInit(); if(blockNumber < 0 || blockNumber >= filedisk.nBlocks) { @@ -271,7 +283,7 @@ int yflash_EraseBlockInNAND(yaffs_Device *dev, int blockNumber) int yflash_InitialiseNAND(yaffs_Device *dev) { - CheckInit(dev); + CheckInit(); return YAFFS_OK; }