140c4004d07a37a9b140067f893930ce4436b9346The Android Open Source Project/*
240c4004d07a37a9b140067f893930ce4436b9346The Android Open Source Project * YAFFS: Yet another FFS. A NAND-flash specific file system.
340c4004d07a37a9b140067f893930ce4436b9346The Android Open Source Project *
440c4004d07a37a9b140067f893930ce4436b9346The Android Open Source Project * Copyright (C) 2002 Aleph One Ltd.
540c4004d07a37a9b140067f893930ce4436b9346The Android Open Source Project *   for Toby Churchill Ltd and Brightstar Engineering
640c4004d07a37a9b140067f893930ce4436b9346The Android Open Source Project *
740c4004d07a37a9b140067f893930ce4436b9346The Android Open Source Project * Created by Charles Manning <charles@aleph1.co.uk>
840c4004d07a37a9b140067f893930ce4436b9346The Android Open Source Project *
940c4004d07a37a9b140067f893930ce4436b9346The Android Open Source Project * This program is free software; you can redistribute it and/or modify
1040c4004d07a37a9b140067f893930ce4436b9346The Android Open Source Project * it under the terms of the GNU Lesser General Public License version 2.1 as
1140c4004d07a37a9b140067f893930ce4436b9346The Android Open Source Project * published by the Free Software Foundation.
1240c4004d07a37a9b140067f893930ce4436b9346The Android Open Source Project *
1340c4004d07a37a9b140067f893930ce4436b9346The Android Open Source Project *
1440c4004d07a37a9b140067f893930ce4436b9346The Android Open Source Project * Note: Only YAFFS headers are LGPL, YAFFS C code is covered by GPL.
1540c4004d07a37a9b140067f893930ce4436b9346The Android Open Source Project *
1640c4004d07a37a9b140067f893930ce4436b9346The Android Open Source Project * yaffs_nandemul2k.h: Interface to emulated NAND functions (2k page size)
1740c4004d07a37a9b140067f893930ce4436b9346The Android Open Source Project *
1840c4004d07a37a9b140067f893930ce4436b9346The Android Open Source Project * $Id: yaffs_nandemul2k.h,v 1.2 2005/08/11 02:37:49 marty Exp $
1940c4004d07a37a9b140067f893930ce4436b9346The Android Open Source Project */
2040c4004d07a37a9b140067f893930ce4436b9346The Android Open Source Project
2140c4004d07a37a9b140067f893930ce4436b9346The Android Open Source Project#ifndef __YAFFS_NANDEMUL2K_H__
2240c4004d07a37a9b140067f893930ce4436b9346The Android Open Source Project#define __YAFFS_NANDEMUL2K_H__
2340c4004d07a37a9b140067f893930ce4436b9346The Android Open Source Project
2440c4004d07a37a9b140067f893930ce4436b9346The Android Open Source Project#include "yaffs_guts.h"
2540c4004d07a37a9b140067f893930ce4436b9346The Android Open Source Project
2640c4004d07a37a9b140067f893930ce4436b9346The Android Open Source Projectint nandemul2k_WriteChunkWithTagsToNAND(struct yaffs_DeviceStruct *dev,
2740c4004d07a37a9b140067f893930ce4436b9346The Android Open Source Project					int chunkInNAND, const __u8 * data,
2840c4004d07a37a9b140067f893930ce4436b9346The Android Open Source Project					yaffs_ExtendedTags * tags);
2940c4004d07a37a9b140067f893930ce4436b9346The Android Open Source Projectint nandemul2k_ReadChunkWithTagsFromNAND(struct yaffs_DeviceStruct *dev,
3040c4004d07a37a9b140067f893930ce4436b9346The Android Open Source Project					 int chunkInNAND, __u8 * data,
3140c4004d07a37a9b140067f893930ce4436b9346The Android Open Source Project					 yaffs_ExtendedTags * tags);
3240c4004d07a37a9b140067f893930ce4436b9346The Android Open Source Projectint nandemul2k_MarkNANDBlockBad(struct yaffs_DeviceStruct *dev, int blockNo);
3340c4004d07a37a9b140067f893930ce4436b9346The Android Open Source Projectint nandemul2k_QueryNANDBlock(struct yaffs_DeviceStruct *dev, int blockNo,
3440c4004d07a37a9b140067f893930ce4436b9346The Android Open Source Project			      yaffs_BlockState * state, int *sequenceNumber);
3540c4004d07a37a9b140067f893930ce4436b9346The Android Open Source Projectint nandemul2k_EraseBlockInNAND(struct yaffs_DeviceStruct *dev,
3640c4004d07a37a9b140067f893930ce4436b9346The Android Open Source Project				int blockInNAND);
3740c4004d07a37a9b140067f893930ce4436b9346The Android Open Source Projectint nandemul2k_InitialiseNAND(struct yaffs_DeviceStruct *dev);
3840c4004d07a37a9b140067f893930ce4436b9346The Android Open Source Projectint nandemul2k_GetBytesPerChunk(void);
3940c4004d07a37a9b140067f893930ce4436b9346The Android Open Source Projectint nandemul2k_GetChunksPerBlock(void);
4040c4004d07a37a9b140067f893930ce4436b9346The Android Open Source Projectint nandemul2k_GetNumberOfBlocks(void);
4140c4004d07a37a9b140067f893930ce4436b9346The Android Open Source Project
4240c4004d07a37a9b140067f893930ce4436b9346The Android Open Source Project#endif
43