X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs2.git;a=blobdiff_plain;f=yaffs_guts.h;h=9ef651d0f4475a31daf153c7b74d493b384ef683;hp=cb9a8e09bce4d11beb29530ff6421ea455b5bae2;hb=6f1de4473200f31d1ca1cf4672baf7afcdec2db0;hpb=378bbdf4d64b8b26db55a495ab6ae520ff62e471 diff --git a/yaffs_guts.h b/yaffs_guts.h index cb9a8e0..9ef651d 100644 --- a/yaffs_guts.h +++ b/yaffs_guts.h @@ -1,8 +1,7 @@ /* - * YAFFS: Yet another FFS. A NAND-flash specific file system. - * yaffs_guts.h: Configuration etc for yaffs_guts + * YAFFS: Yet another Flash File System . A NAND-flash specific file system. * - * Copyright (C) 2002 Aleph One Ltd. + * Copyright (C) 2002-2007 Aleph One Ltd. * for Toby Churchill Ltd and Brightstar Engineering * * Created by Charles Manning @@ -11,10 +10,7 @@ * 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. - * - * $Id: yaffs_guts.h,v 1.24 2006-10-03 10:13:03 charles Exp $ */ #ifndef __YAFFS_GUTS_H__ @@ -69,6 +65,8 @@ #define YAFFS_NCHECKPOINT_OBJECTS 5000 +#define YAFFS_CHECKPOINT_VERSION 2 + #ifdef CONFIG_YAFFS_UNICODE #define YAFFS_MAX_NAME_LENGTH 127 #define YAFFS_MAX_ALIAS_LENGTH 79 @@ -268,14 +266,15 @@ typedef enum { typedef struct { - int softDeletions:12; /* number of soft deleted pages */ - int pagesInUse:12; /* number of pages in use */ + int softDeletions:10; /* number of soft deleted pages */ + int pagesInUse:10; /* number of pages in use */ yaffs_BlockState blockState:4; /* One of the above block states */ __u32 needsRetiring:1; /* Data has failed on this block, need to get valid data off */ /* and retire the block. */ __u32 skipErasedCheck: 1; /* If this is set we can skip the erased check on this block */ __u32 gcPrioritise: 1; /* An ECC check or bank check has failed on this block. It should be prioritised for GC */ + __u32 chunkErrorStrikes:3; /* How many times we've had ecc etc failures on this block and tried to reuse it */ #ifdef CONFIG_YAFFS_YAFFS2 __u32 hasShrinkHeader:1; /* This block has at least one shrink object header */ @@ -885,5 +884,6 @@ void yaffs_GutsTest(yaffs_Device * dev); void yaffs_InitialiseTags(yaffs_ExtendedTags * tags); void yaffs_DeleteChunk(yaffs_Device * dev, int chunkId, int markNAND, int lyn); int yaffs_CheckFF(__u8 * buffer, int nBytes); +void yaffs_HandleChunkError(yaffs_Device *dev, yaffs_BlockInfo *bi); #endif