|  | /* | 
|  | * 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 | 
|  | * | 
|  | * Created by Charles Manning <charles@aleph1.co.uk> | 
|  | * | 
|  | * This program is free software; you can redistribute it and/or modify | 
|  | * it under the terms of the GNU Lesser General Public License version 2.1 as | 
|  | * published by the Free Software Foundation. | 
|  | * | 
|  | * Note: Only YAFFS headers are LGPL, YAFFS C code is covered by GPL. | 
|  | */ | 
|  |  | 
|  |  | 
|  | #ifndef __YNANDIF_H__ | 
|  | #define __YNANDIF_H__ | 
|  |  | 
|  | #include "yaffs_guts.h" | 
|  |  | 
|  | struct ynandif_Geometry { | 
|  | unsigned start_block; | 
|  | unsigned end_block; | 
|  | unsigned dataSize; | 
|  | unsigned spareSize; | 
|  | unsigned pagesPerBlock; | 
|  | unsigned hasECC; | 
|  | unsigned inband_tags; | 
|  | unsigned useYaffs2; | 
|  |  | 
|  | int (*initialise)(struct yaffs_dev *dev); | 
|  | int (*deinitialise)(struct yaffs_dev *dev); | 
|  |  | 
|  | int (*readChunk) (struct yaffs_dev *dev, | 
|  | unsigned pageId, | 
|  | unsigned char *data, | 
|  | unsigned dataLength, | 
|  | unsigned char *spare, | 
|  | unsigned spareLength, | 
|  | int *eccStatus); | 
|  | /* ECC status is set to 0 for OK, 1 for fixed, -1 for unfixed. */ | 
|  |  | 
|  | int (*writeChunk)(struct yaffs_dev *dev, | 
|  | unsigned pageId, | 
|  | const unsigned char *data, | 
|  | unsigned dataLength, | 
|  | const unsigned char *spare, | 
|  | unsigned spareLength); | 
|  |  | 
|  | int (*eraseBlock)(struct yaffs_dev *dev, unsigned blockId); | 
|  |  | 
|  | int (*checkBlockOk)(struct yaffs_dev *dev, unsigned blockId); | 
|  | int (*markBlockBad)(struct yaffs_dev *dev, unsigned blockId); | 
|  |  | 
|  | void *privateData; | 
|  |  | 
|  | }; | 
|  |  | 
|  | struct yaffs_dev * | 
|  | yaffs_add_dev_from_geometry(const YCHAR *name, | 
|  | const struct ynandif_Geometry *geometry); | 
|  |  | 
|  |  | 
|  | #endif |