X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs2.git;a=blobdiff_plain;f=direct%2Ftest-framework%2Fyaffs_ramem2k.c;h=cfb0f4f0b5e1e827e72b97ff73a399fa5f5d89d5;hp=715ae77c97fd95b90088ddd73850fd9187430e92;hb=21b2dedaa32ab309f6d1daec966528b7586bd207;hpb=bf0323aab4b4a577fcb2dafc573b443aabcedc02 diff --git a/direct/test-framework/yaffs_ramem2k.c b/direct/test-framework/yaffs_ramem2k.c index 715ae77..cfb0f4f 100644 --- a/direct/test-framework/yaffs_ramem2k.c +++ b/direct/test-framework/yaffs_ramem2k.c @@ -49,7 +49,7 @@ #define BLOCKS_PER_MEG ((1<<20)/(PAGES_PER_BLOCK * PAGE_DATA_SIZE)) -typedef struct +typedef struct { u8 data[PAGE_TOTAL_SIZE]; // Data + spare int empty; // is this empty? @@ -59,7 +59,7 @@ typedef struct typedef struct { nandemul_Page *page[PAGES_PER_BLOCK]; - int damaged; + int damaged; } nandemul_Block; @@ -87,16 +87,16 @@ static void nandemul_yield(int n) static void nandemul_ReallyEraseBlock(int blockNumber) { int i; - + nandemul_Block *blk; - + if(blockNumber < 0 || blockNumber >= ned.nBlocks) { return; } - + blk = ned.block[blockNumber]; - + for(i = 0; i < PAGES_PER_BLOCK; i++) { memset(blk->page[i],0xff,sizeof(nandemul_Page)); @@ -116,40 +116,40 @@ static int nandemul2k_CalcNBlocks(void) static int CheckInit(void) { static int initialised = 0; - + int i,j; - + int fail = 0; - int nBlocks; + int nBlocks; int nAllocated = 0; - - if(initialised) + + if(initialised) { return YAFFS_OK; } - - + + ned.nBlocks = nBlocks = nandemul2k_CalcNBlocks(); - + ned.block = malloc(sizeof(nandemul_Block*) * nBlocks ); - + if(!ned.block) return YAFFS_FAIL; - - - - + + + + for(i=fail=0; i page[pg]->data; - + for(i = 0; i < PAGE_DATA_SIZE; i++) { x[i] &=data[i]; @@ -212,16 +212,16 @@ int nandemul2k_WriteChunkWithTagsToNAND(struct yaffs_dev *dev,int nand_chunk,con ned.block[blk]->page[pg]->empty = 0; } - - + + if(tags) { x = &ned.block[blk]->page[pg]->data[PAGE_DATA_SIZE]; - - yaffs_pack_tags2((struct yaffs_packed_tags2 *)x,tags, !dev->param.no_tags_ecc); - + + yaffs_pack_tags2(dev, (struct yaffs_packed_tags2 *)x,tags, !dev->param.no_tags_ecc); + } - + if(tags || data) { nandemul_yield(1); @@ -235,26 +235,26 @@ int nandemul2k_ReadChunkWithTagsFromNAND(struct yaffs_dev *dev,int nand_chunk, u { int blk; int pg; - + u8 *x; - - + + blk = nand_chunk/PAGES_PER_BLOCK; pg = nand_chunk%PAGES_PER_BLOCK; - - + + if(data) { memcpy(data,ned.block[blk]->page[pg]->data,PAGE_DATA_SIZE); } - - + + if(tags) { x = &ned.block[blk]->page[pg]->data[PAGE_DATA_SIZE]; - - yaffs_unpack_tags2(tags,(struct yaffs_packed_tags2 *)x, !dev->param.no_tags_ecc); + + yaffs_unpack_tags2(dev, tags,(struct yaffs_packed_tags2 *)x, !dev->param.no_tags_ecc); } return YAFFS_OK; @@ -267,12 +267,12 @@ static int nandemul2k_CheckChunkErased(struct yaffs_dev *dev,int nand_chunk) int pg; int i; - - + + blk = nand_chunk/PAGES_PER_BLOCK; pg = nand_chunk%PAGES_PER_BLOCK; - - + + for(i = 0; i < PAGE_TOTAL_SIZE; i++) { if(ned.block[blk]->page[pg]->data[i] != 0xFF) @@ -287,8 +287,8 @@ static int nandemul2k_CheckChunkErased(struct yaffs_dev *dev,int nand_chunk) int nandemul2k_EraseBlockInNAND(struct yaffs_dev *dev, int blockNumber) { - - + + if(blockNumber < 0 || blockNumber >= ned.nBlocks) { yaffs_trace(YAFFS_TRACE_ALWAYS, @@ -305,7 +305,7 @@ int nandemul2k_EraseBlockInNAND(struct yaffs_dev *dev, int blockNumber) { nandemul_ReallyEraseBlock(blockNumber); } - + return YAFFS_OK; } @@ -314,19 +314,19 @@ int nandemul2k_InitialiseNAND(struct yaffs_dev *dev) CheckInit(); return YAFFS_OK; } - + int nandemul2k_MarkNANDBlockBad(struct yaffs_dev *dev, int block_no) { - + u8 *x; - + x = &ned.block[block_no]->page[0]->data[PAGE_DATA_SIZE]; - + memset(x,0,sizeof(struct yaffs_packed_tags2)); - - + + return YAFFS_OK; - + } int nandemul2k_QueryNANDBlock(struct yaffs_dev *dev, int block_no, enum yaffs_block_state *state, u32 *seq_number) @@ -335,9 +335,9 @@ int nandemul2k_QueryNANDBlock(struct yaffs_dev *dev, int block_no, enum yaffs_bl int chunkNo; *seq_number = 0; - + chunkNo = block_no * dev->param.chunks_per_block; - + nandemul2k_ReadChunkWithTagsFromNAND(dev,chunkNo,NULL,&tags); if(tags.block_bad) {