projects
/
yaffs2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Huge cleanup of type warnings etc.
[yaffs2.git]
/
direct
/
test-framework
/
yaffs_ramem2k.c
diff --git
a/direct/test-framework/yaffs_ramem2k.c
b/direct/test-framework/yaffs_ramem2k.c
index 715ae77c97fd95b90088ddd73850fd9187430e92..b281dd400b8511e76274288855bc07d521180e91 100644
(file)
--- 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))
#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?
{
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];
typedef struct
{
nandemul_Page *page[PAGES_PER_BLOCK];
- int damaged;
+ int damaged;
} nandemul_Block;
} nandemul_Block;
@@
-79,6
+79,8
@@
static void nandemul_yield(int n)
{
#ifdef __KERNEL__
if(n > 0) schedule_timeout(n);
{
#ifdef __KERNEL__
if(n > 0) schedule_timeout(n);
+#else
+ YAFFS_UNUSED(n);
#endif
}
#endif
}
@@
-87,16
+89,16
@@
static void nandemul_yield(int n)
static void nandemul_ReallyEraseBlock(int blockNumber)
{
int i;
static void nandemul_ReallyEraseBlock(int blockNumber)
{
int i;
-
+
nandemul_Block *blk;
nandemul_Block *blk;
-
+
if(blockNumber < 0 || blockNumber >= ned.nBlocks)
{
return;
}
if(blockNumber < 0 || blockNumber >= ned.nBlocks)
{
return;
}
-
+
blk = ned.block[blockNumber];
blk = ned.block[blockNumber];
-
+
for(i = 0; i < PAGES_PER_BLOCK; i++)
{
memset(blk->page[i],0xff,sizeof(nandemul_Page));
for(i = 0; i < PAGES_PER_BLOCK; i++)
{
memset(blk->page[i],0xff,sizeof(nandemul_Page));
@@
-116,40
+118,40
@@
static int nandemul2k_CalcNBlocks(void)
static int CheckInit(void)
{
static int initialised = 0;
static int CheckInit(void)
{
static int initialised = 0;
-
+
int i,j;
int i,j;
-
+
int fail = 0;
int fail = 0;
- int nBlocks;
+ int nBlocks;
int nAllocated = 0;
int nAllocated = 0;
-
- if(initialised)
+
+ if(initialised)
{
return YAFFS_OK;
}
{
return YAFFS_OK;
}
-
-
+
+
ned.nBlocks = nBlocks = nandemul2k_CalcNBlocks();
ned.nBlocks = nBlocks = nandemul2k_CalcNBlocks();
-
+
ned.block = malloc(sizeof(nandemul_Block*) * nBlocks );
ned.block = malloc(sizeof(nandemul_Block*) * nBlocks );
-
+
if(!ned.block) return YAFFS_FAIL;
if(!ned.block) return YAFFS_FAIL;
-
-
-
-
+
+
+
+
for(i=fail=0; i <nBlocks; i++)
{
for(i=fail=0; i <nBlocks; i++)
{
-
+
nandemul_Block *blk;
nandemul_Block *blk;
-
+
if(!(blk = ned.block[i] = malloc(sizeof(nandemul_Block))))
{
fail = 1;
if(!(blk = ned.block[i] = malloc(sizeof(nandemul_Block))))
{
fail = 1;
- }
+ }
else
{
for(j = 0; j < PAGES_PER_BLOCK; j++)
else
{
for(j = 0; j < PAGES_PER_BLOCK; j++)
@@
-164,27
+166,27
@@
static int CheckInit(void)
nAllocated++;
}
}
nAllocated++;
}
}
-
+
if(fail)
{
//Todo thump pages
if(fail)
{
//Todo thump pages
-
+
for(i = 0; i < nAllocated; i++)
{
kfree(ned.block[i]);
}
kfree(ned.block);
for(i = 0; i < nAllocated; i++)
{
kfree(ned.block[i]);
}
kfree(ned.block);
-
+
yaffs_trace(YAFFS_TRACE_ALWAYS,
"Allocation failed, could only allocate %dMB of %dMB requested.\n",
nAllocated/64,sizeInMB);
return 0;
}
yaffs_trace(YAFFS_TRACE_ALWAYS,
"Allocation failed, could only allocate %dMB of %dMB requested.\n",
nAllocated/64,sizeInMB);
return 0;
}
-
+
ned.nBlocks = nBlocks;
ned.nBlocks = nBlocks;
-
+
initialised = 1;
initialised = 1;
-
+
return 1;
}
return 1;
}
@@
-193,18
+195,18
@@
int nandemul2k_WriteChunkWithTagsToNAND(struct yaffs_dev *dev,int nand_chunk,con
int blk;
int pg;
int i;
int blk;
int pg;
int i;
-
+
u8 *x;
u8 *x;
-
+
blk = nand_chunk/PAGES_PER_BLOCK;
pg = nand_chunk%PAGES_PER_BLOCK;
blk = nand_chunk/PAGES_PER_BLOCK;
pg = nand_chunk%PAGES_PER_BLOCK;
-
-
+
+
if(data)
{
x = ned.block[blk]->page[pg]->data;
if(data)
{
x = ned.block[blk]->page[pg]->data;
-
+
for(i = 0; i < PAGE_DATA_SIZE; i++)
{
x[i] &=data[i];
for(i = 0; i < PAGE_DATA_SIZE; i++)
{
x[i] &=data[i];
@@
-212,16
+214,16
@@
int nandemul2k_WriteChunkWithTagsToNAND(struct yaffs_dev *dev,int nand_chunk,con
ned.block[blk]->page[pg]->empty = 0;
}
ned.block[blk]->page[pg]->empty = 0;
}
-
-
+
+
if(tags)
{
x = &ned.block[blk]->page[pg]->data[PAGE_DATA_SIZE];
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((struct yaffs_packed_tags2 *)x,tags, !dev->param.no_tags_ecc);
-
+
}
}
-
+
if(tags || data)
{
nandemul_yield(1);
if(tags || data)
{
nandemul_yield(1);
@@
-235,60
+237,35
@@
int nandemul2k_ReadChunkWithTagsFromNAND(struct yaffs_dev *dev,int nand_chunk, u
{
int blk;
int pg;
{
int blk;
int pg;
-
+
u8 *x;
u8 *x;
-
-
+
+
blk = nand_chunk/PAGES_PER_BLOCK;
pg = nand_chunk%PAGES_PER_BLOCK;
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(data)
{
memcpy(data,ned.block[blk]->page[pg]->data,PAGE_DATA_SIZE);
}
-
-
+
+
if(tags)
{
x = &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);
- }
-
- return YAFFS_OK;
-}
-
-
-static int nandemul2k_CheckChunkErased(struct yaffs_dev *dev,int nand_chunk)
-{
- int blk;
- 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)
- {
- return YAFFS_FAIL;
- }
+ yaffs_unpack_tags2(tags,(struct yaffs_packed_tags2 *)x, !dev->param.no_tags_ecc);
}
return YAFFS_OK;
}
return YAFFS_OK;
-
}
int nandemul2k_EraseBlockInNAND(struct yaffs_dev *dev, int blockNumber)
{
}
int nandemul2k_EraseBlockInNAND(struct yaffs_dev *dev, int blockNumber)
{
-
-
+ YAFFS_UNUSED(dev);
+
if(blockNumber < 0 || blockNumber >= ned.nBlocks)
{
yaffs_trace(YAFFS_TRACE_ALWAYS,
if(blockNumber < 0 || blockNumber >= ned.nBlocks)
{
yaffs_trace(YAFFS_TRACE_ALWAYS,
@@
-305,28
+282,31
@@
int nandemul2k_EraseBlockInNAND(struct yaffs_dev *dev, int blockNumber)
{
nandemul_ReallyEraseBlock(blockNumber);
}
{
nandemul_ReallyEraseBlock(blockNumber);
}
-
+
return YAFFS_OK;
}
int nandemul2k_InitialiseNAND(struct yaffs_dev *dev)
{
return YAFFS_OK;
}
int nandemul2k_InitialiseNAND(struct yaffs_dev *dev)
{
+ YAFFS_UNUSED(dev);
+
CheckInit();
return YAFFS_OK;
}
CheckInit();
return YAFFS_OK;
}
-
+
int nandemul2k_MarkNANDBlockBad(struct yaffs_dev *dev, int block_no)
{
int nandemul2k_MarkNANDBlockBad(struct yaffs_dev *dev, int block_no)
{
-
u8 *x;
u8 *x;
-
+
+ YAFFS_UNUSED(dev);
+
x = &ned.block[block_no]->page[0]->data[PAGE_DATA_SIZE];
x = &ned.block[block_no]->page[0]->data[PAGE_DATA_SIZE];
-
+
memset(x,0,sizeof(struct yaffs_packed_tags2));
memset(x,0,sizeof(struct yaffs_packed_tags2));
-
-
+
+
return YAFFS_OK;
return YAFFS_OK;
-
+
}
int nandemul2k_QueryNANDBlock(struct yaffs_dev *dev, int block_no, enum yaffs_block_state *state, u32 *seq_number)
}
int nandemul2k_QueryNANDBlock(struct yaffs_dev *dev, int block_no, enum yaffs_block_state *state, u32 *seq_number)
@@
-334,10
+314,12
@@
int nandemul2k_QueryNANDBlock(struct yaffs_dev *dev, int block_no, enum yaffs_bl
struct yaffs_ext_tags tags;
int chunkNo;
struct yaffs_ext_tags tags;
int chunkNo;
+ YAFFS_UNUSED(dev);
+
*seq_number = 0;
*seq_number = 0;
-
+
chunkNo = block_no * dev->param.chunks_per_block;
chunkNo = block_no * dev->param.chunks_per_block;
-
+
nandemul2k_ReadChunkWithTagsFromNAND(dev,chunkNo,NULL,&tags);
if(tags.block_bad)
{
nandemul2k_ReadChunkWithTagsFromNAND(dev,chunkNo,NULL,&tags);
if(tags.block_bad)
{
@@
-355,10
+337,19
@@
int nandemul2k_QueryNANDBlock(struct yaffs_dev *dev, int block_no, enum yaffs_bl
return YAFFS_OK;
}
return YAFFS_OK;
}
-int nandemul2k_GetBytesPerChunk(void) { return PAGE_DATA_SIZE;}
+int nandemul2k_GetBytesPerChunk(void)
+{
+ return PAGE_DATA_SIZE;
+}
+
+int nandemul2k_GetChunksPerBlock(void)
+{
+ return PAGES_PER_BLOCK;
+}
-int nandemul2k_GetChunksPerBlock(void) { return PAGES_PER_BLOCK; }
-int nandemul2k_GetNumberOfBlocks(void) {return nandemul2k_CalcNBlocks();}
+int nandemul2k_GetNumberOfBlocks(void) {
+ return nandemul2k_CalcNBlocks();
+}
#endif //YAFFS_RAM_ENABLED
#endif //YAFFS_RAM_ENABLED