yaffs2: Yaffs endian support
[yaffs2.git] / direct / test-framework / yaffs_ramem2k.c
index 715ae77c97fd95b90088ddd73850fd9187430e92..cfb0f4f0b5e1e827e72b97ff73a399fa5f5d89d5 100644 (file)
@@ -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 <nBlocks; i++)
        {
-               
+
                nandemul_Block *blk;
-               
+
                if(!(blk = ned.block[i] = malloc(sizeof(nandemul_Block))))
                {
                 fail = 1;
-               }  
+               }
                else
                {
                        for(j = 0; j < PAGES_PER_BLOCK; j++)
@@ -164,27 +164,27 @@ static int  CheckInit(void)
                        nAllocated++;
                }
        }
-       
+
        if(fail)
        {
                //Todo thump pages
-               
+
                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;
        }
-       
+
        ned.nBlocks = nBlocks;
-       
+
        initialised = 1;
-       
+
        return 1;
 }
 
@@ -193,18 +193,18 @@ int nandemul2k_WriteChunkWithTagsToNAND(struct yaffs_dev *dev,int nand_chunk,con
        int blk;
        int pg;
        int i;
-       
+
        u8 *x;
 
-       
+
        blk = nand_chunk/PAGES_PER_BLOCK;
        pg = nand_chunk%PAGES_PER_BLOCK;
-       
-       
+
+
        if(data)
        {
                x = ned.block[blk]->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)
        {