Change string concats to work with all OSs
[yaffs2.git] / yaffs_guts.h
index 3c7358316aba87ffa7140402f8cbba8c4baa5848..284e206040eb14c485d8fe55cf0a86307679b2f2 100644 (file)
 #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;