Fix copyright
[yaffs2.git] / direct / test-framework / yaffs_nand_drv.c
index 6b3a91ea8011646f7633c0e1dd2cc589d32ffa3d..3a06bd72f156d9b4bbb67e96b955fc2a2f8f0df4 100644 (file)
@@ -1,8 +1,7 @@
 /*
  * YAFFS: Yet Another Flash File System. A NAND-flash specific file system.
  *
- * Copyright (C) 2002-2011 Aleph One Ltd.
- *   for Toby Churchill Ltd and Brightstar Engineering
+ * Copyright (C) 2002-2018 Aleph One Ltd.
  *
  * Created by Charles Manning <charles@aleph1.co.uk>
  *
@@ -83,7 +82,7 @@ static int yaffs_nand_drv_WriteChunk(struct yaffs_dev *dev, int nand_chunk,
 
        /* Set up and execute transfer */
 
-       tr[0].buffer = data;
+       tr[0].buffer = (u8 *)data;
        tr[0].offset = 0;
        tr[0].nbytes = data_len;
 
@@ -143,7 +142,6 @@ static int yaffs_nand_drv_ReadChunk(struct yaffs_dev *dev, int nand_chunk,
 
        ecc_result = YAFFS_ECC_RESULT_NO_ERROR;
 
-#if 0
        if(data) {
                for(i = 0, e = buffer + 2; i < chip->data_bytes_per_page; i+=256, e+=3) {
                        yaffs_ecc_calc(data + i, read_ecc);
@@ -154,7 +152,6 @@ static int yaffs_nand_drv_ReadChunk(struct yaffs_dev *dev, int nand_chunk,
                                ecc_result = YAFFS_ECC_RESULT_FIXED;
                }
        }
-#endif
 
        if (ecc_result_out)
                *ecc_result_out = ecc_result;
@@ -198,8 +195,6 @@ static int yaffs_nand_drv_CheckBad(struct yaffs_dev *dev, int block_no)
        struct nand_chip *chip = dev_to_chip(dev);
        u8 *buffer = dev_to_buffer(dev);
        int nand_chunk = block_no * chip->pages_per_block;
-       int ret;
-
        struct nanddrv_transfer tr[1];
 
        memset(buffer, 0, chip->spare_bytes_per_page);
@@ -208,7 +203,7 @@ static int yaffs_nand_drv_CheckBad(struct yaffs_dev *dev, int block_no)
        tr[0].offset = chip->data_bytes_per_page;
        tr[0].nbytes = chip->spare_bytes_per_page;
 
-       ret = nanddrv_read_tr(chip, nand_chunk, tr, 1);
+       nanddrv_read_tr(chip, nand_chunk, tr, 1);
 
        /* Check that bad block marker is not set */
        if(yaffs_hweight8(buffer[0]) + yaffs_hweight8(buffer[1]) < 14)
@@ -222,6 +217,7 @@ static int yaffs_nand_drv_Initialise(struct yaffs_dev *dev)
 {
        struct nand_chip *chip = dev_to_chip(dev);
 
+       (void)chip;
        return YAFFS_OK;
 }
 
@@ -229,56 +225,23 @@ static int yaffs_nand_drv_Deinitialise(struct yaffs_dev *dev)
 {
        struct nand_chip *chip = dev_to_chip(dev);
 
+       (void) chip;
        return YAFFS_OK;
 }
 
-#include "nandsim_file.h"
 
-struct yaffs_dev *yaffs_nandsim_install_drv(const char *name,
-                                       const char *file_name,
-                                       int n_blocks)
+int yaffs_nand_install_drv(struct yaffs_dev *dev, struct nand_chip *chip)
 {
-       struct yaffs_dev *dev;
-       char *name_copy = NULL;
-       struct yaffs_param *param;
-       struct yaffs_driver *drv;
-       struct nand_chip *chip = NULL;
-       struct nand_context *ctxt = NULL;
+       struct yaffs_driver *drv = &dev->drv;
        u8 *buffer = NULL;
+       struct nand_context *ctxt = NULL;
 
-       dev = malloc(sizeof(struct yaffs_dev));
        ctxt = malloc(sizeof(struct nand_context));
-       name_copy = strdup(name);
-
-       if(!dev || !ctxt || !name_copy)
-               goto fail;
-
-       chip = nandsim_file_init(file_name, n_blocks, 64, 2048, 64, 0);
-       if(!chip)
-               goto fail;
-
        buffer = malloc(chip->spare_bytes_per_page);
 
-       if(!buffer)
+       if(!buffer || !ctxt)
                goto fail;
 
-       param = &dev->param;
-       drv = &dev->drv;
-
-       memset(dev, 0, sizeof(*dev));
-       memset(ctxt, 0, sizeof(*ctxt));
-
-       param->name = name_copy;
-
-       param->total_bytes_per_chunk = chip->data_bytes_per_page;
-       param->chunks_per_block = chip->pages_per_block;
-       param->n_reserved_blocks = 5;
-       param->start_block = 0; // Can use block 0
-       param->end_block = chip->blocks - 1; // Last block
-       param->is_yaffs2 = 1;
-       param->use_nand_ecc = 1;
-       param->n_caches = 10;
-
        drv->drv_write_chunk_fn = yaffs_nand_drv_WriteChunk;
        drv->drv_read_chunk_fn = yaffs_nand_drv_ReadChunk;
        drv->drv_erase_fn = yaffs_nand_drv_EraseBlock;
@@ -290,15 +253,10 @@ struct yaffs_dev *yaffs_nandsim_install_drv(const char *name,
        ctxt->chip = chip;
        ctxt->buffer = buffer;
        dev->driver_context = (void *) ctxt;
-
-       yaffs_add_device(dev);
-
-       return dev;
+       return YAFFS_OK;
 
 fail:
-       free(dev);
        free(ctxt);
-       free(name_copy);
        free(buffer);
-       return NULL;
+       return YAFFS_FAIL;
 }