X-Git-Url: https://yaffs.net/gitweb/?a=blobdiff_plain;f=yaffs_guts.h;h=284e206040eb14c485d8fe55cf0a86307679b2f2;hb=3e99d0b5c96855096922aaeeca0bffaec15e457c;hp=3c7358316aba87ffa7140402f8cbba8c4baa5848;hpb=49942b13d7cfbdba72c18de0f37d16d81b4372a8;p=yaffs2.git diff --git a/yaffs_guts.h b/yaffs_guts.h index 3c73583..284e206 100644 --- a/yaffs_guts.h +++ b/yaffs_guts.h @@ -108,6 +108,9 @@ #define YAFFS_LOWEST_SEQUENCE_NUMBER 0x00001000 #define YAFFS_HIGHEST_SEQUENCE_NUMBER 0xEFFFFF00 +/* Special sequence number for bad block that failed to be marked bad */ +#define YAFFS_SEQUENCE_BAD_BLOCK 0xFFFF0000 + /* ChunkCache is used for short read/write operations.*/ typedef struct { struct yaffs_ObjectStruct *object; @@ -421,11 +424,10 @@ struct yaffs_ObjectStruct { * still in the inode cache. Free of object is defered. * until the inode is released. */ + __u8 beingCreated:1; /* This object is still being created so skip some checks. */ - __u8 serial; /* serial number of chunk in NAND. Cached here */ -/* __u16 sum_prev; */ - __u16 sum; /* sum of the name to speed searching */ -/* __u16 sum_trailer; */ + __u8 serial; /* serial number of chunk in NAND. Cached here */ + __u16 sum; /* sum of the name to speed searching */ struct yaffs_DeviceStruct *myDev; /* The device I'm on */ @@ -445,10 +447,10 @@ struct yaffs_ObjectStruct { __u32 objectId; /* the object id value */ - __u32 yst_mode; + __u32 yst_mode; #ifdef CONFIG_YAFFS_SHORT_NAMES_IN_RAM - YCHAR shortName[YAFFS_SHORT_NAME_LENGTH + 1]; + YCHAR shortName[YAFFS_SHORT_NAME_LENGTH + 1]; #endif #ifndef __KERNEL__ @@ -580,7 +582,7 @@ struct yaffs_DeviceStruct { int (*deinitialiseNAND) (struct yaffs_DeviceStruct * dev); #ifdef CONFIG_YAFFS_YAFFS2 - int (*writeChunkWithTagsToNAND) (struct yaffs_DeviceStruct * dev, + int (*writeChunkWithTagsToNAND) (struct yaffs_DeviceStruct * dev, int chunkInNAND, const __u8 * data, const yaffs_ExtendedTags * tags); int (*readChunkWithTagsFromNAND) (struct yaffs_DeviceStruct * dev, @@ -691,6 +693,8 @@ struct yaffs_DeviceStruct { yaffs_TnodeList *allocatedTnodeList; int isDoingGC; + int gcBlock; + int gcChunk; int nObjectsCreated; yaffs_Object *freeObjects;