Fix blocks per chunk in resize
[yaffs/.git] / yaffs_guts.h
index eb1d8b8ee4cf716391062f49e413f7275510941b..5d6afde41f54b70e92b7dfee99132e8a57c85e93 100644 (file)
@@ -14,7 +14,7 @@
  *
  * Note: Only YAFFS headers are LGPL, YAFFS C code is covered by GPL.
  *
- * $Id: yaffs_guts.h,v 1.18 2004-10-20 20:12:43 charles Exp $
+ * $Id: yaffs_guts.h,v 1.21 2005-10-11 23:43:27 charles Exp $
  */
 
 #ifndef __YAFFS_GUTS_H__
@@ -162,8 +162,8 @@ typedef struct
 #ifndef CONFIG_YAFFS_NO_YAFFS2
        __u32 sequenceNumber;   // block sequence number for yaffs2
 #endif
-       int   softDeletions:8;  // number of soft deleted pages
-    int   pagesInUse:8;                // number of pages in use
+       int   softDeletions:12; // number of soft deleted pages
+    int   pagesInUse:12;       // number of pages in use
     __u32 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.
@@ -193,16 +193,16 @@ typedef struct
        char  name[YAFFS_MAX_NAME_LENGTH + 1];
 
        // Thes following apply to directories, files, symlinks - not hard links
-       __u32 st_mode;  // protection
+       __u32 yst_mode;  // protection
 
 #ifdef CONFIG_YAFFS_WINCE
        __u32 notForWinCE[5];
 #else
-       __u32 st_uid;   // user ID of owner
-       __u32 st_gid;    // group ID of owner 
-       __u32 st_atime; // time of last access
-       __u32 st_mtime; // time of last modification
-       __u32 st_ctime; // time of last change
+       __u32 yst_uid;   // user ID of owner
+       __u32 yst_gid;    // group ID of owner 
+       __u32 yst_atime; // time of last access
+       __u32 yst_mtime; // time of last modification
+       __u32 yst_ctime; // time of last change
 #endif
 
        // File size  applies to files only
@@ -214,7 +214,7 @@ typedef struct
        // Alias is for symlinks only.
        char alias[YAFFS_MAX_ALIAS_LENGTH + 1];
        
-       __u32 st_rdev;  // device stuff for block and char devices (maj/min)
+       __u32 yst_rdev;  // device stuff for block and char devices (maj/min)
        
 #ifdef CONFIG_YAFFS_WINCE
        __u32 win_ctime[2];
@@ -332,7 +332,7 @@ struct  yaffs_ObjectStruct
        __u32 objectId;         // the object id value
        
        
-       __u32 st_mode;          // protection
+       __u32 yst_mode;         // protection
 
 #ifdef CONFIG_YAFFS_SHORT_NAMES_IN_RAM
        char shortName[YAFFS_SHORT_NAME_LENGTH+1];
@@ -347,14 +347,14 @@ struct  yaffs_ObjectStruct
        __u32 win_mtime[2];
        __u32 win_atime[2];
 #else
-       __u32 st_uid;           // user ID of owner
-       __u32 st_gid;           // group ID of owner 
-       __u32 st_atime;         // time of last access
-       __u32 st_mtime;         // time of last modification
-       __u32 st_ctime;         // time of last change
+       __u32 yst_uid;          // user ID of owner
+       __u32 yst_gid;          // group ID of owner 
+       __u32 yst_atime;        // time of last access
+       __u32 yst_mtime;        // time of last modification
+       __u32 yst_ctime;        // time of last change
 #endif
 
-       __u32 st_rdev;      // device stuff for block and char devices
+       __u32 yst_rdev;             // device stuff for block and char devices
 
 
 
@@ -398,7 +398,7 @@ struct yaffs_DeviceStruct
 {
        // Entry parameters set up way early. Yaffs sets up the rest.
        int   nBytesPerChunk;    // Should be a power of 2 >= 512
-       int       nChunksPerBlock;       // does not need to be a power of 2
+       int   nChunksPerBlock;   // does not need to be a power of 2
        int   startBlock;                // Start block we're allowed to use
        int   endBlock;                  // End block we're allowed to use
        int   nReservedBlocks;   // We want this tuneable so that we can reduce
@@ -420,6 +420,11 @@ struct yaffs_DeviceStruct
        int (*initialiseNAND)(struct yaffs_DeviceStruct *dev);
 
        // Runtime parameters. Set up by YAFFS.
+       int   internalStartBlock;                // Internal version of startBlock
+       int   internalEndBlock;                  // End block we're allowed to use
+       int   blockOffset;
+       int   chunkOffset;
+       
        
        __u16 chunkGroupBits; // 0 for devices <= 32MB. else log2(nchunks) - 16
        __u16 chunkGroupSize; // == 2^^chunkGroupBits