int emptyLostAndFound; /* Auto-empty lost+found directory on mount */
+ int refreshPeriod; /* How often we should check to do a block refresh */
+
/* Checkpoint control. Can be set before or after initialisation */
__u8 skipCheckpointRead;
__u8 skipCheckpointWrite;
int disableLazyLoad; /* Disable lazy loading on this device */
int wideTnodesDisabled; /* Set to disable wide tnodes */
- YCHAR *pathDividers; /* String of legal path dividers */
-
-
-
/* End of stuff that must be set before initialisation. */
};
yaffs_ObjectList *allocatedObjectList;
yaffs_ObjectBucket objectBucket[YAFFS_NOBJECT_BUCKETS];
+ __u32 bucketFinder;
int nFreeChunks;
yaffs_ChunkCache *srCache;
int srLastUse;
- int cacheHits;
-
/* Stuff for background deletion and unlinked files.*/
yaffs_Object *unlinkedDir; /* Directory where unlinked and deleted files live. */
yaffs_Object *deletedDir; /* Directory where deleted objects are sent to disappear. */
int nUnlinkedFiles; /* Count of unlinked files. */
int nBackgroundDeletions; /* Count of background deletions. */
-
/* Temporary buffer management */
yaffs_TempBuffer tempBuffer[YAFFS_N_TEMP_BUFFERS];
int maxTemp;
/* yaffs2 runtime stuff */
unsigned sequenceNumber; /* Sequence number of currently allocating block */
unsigned oldestDirtySequence;
-
+
+ /* Block refreshing */
+ int refreshSkip; /* A skip down counter. Refresh happens when this gets to zero. */
/* Statistcs */
int nPageWrites;
int tagsEccUnfixed;
int nDeletions;
int nUnmarkedDeletions;
+ int refreshCount;
+ int cacheHits;
+
};
typedef struct yaffs_DeviceStruct yaffs_Device;