Merge branch 'time_upgrade'
[yaffs2.git] / yaffs_guts.h
index 5fa1877114e418a4c25eccbb2a0b34756ec82631..22381f9c9fc695fd5741e5c9104cdc8448b0a4cf 100644 (file)
 /* 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.*/
+/* Chunk cache is used for short read/write operations.*/
 struct yaffs_cache {
        struct yaffs_obj *object;
        int chunk_id;
@@ -136,6 +136,13 @@ struct yaffs_cache {
        u8 *data;
 };
 
+struct yaffs_cache_manager {
+       struct yaffs_cache *cache;
+       int n_caches;
+       int cache_last_use;
+       int n_temp_buffers;
+};
+
 /* yaffs1 tags structures in RAM
  * NB This uses bitfield. Bitfields should not straddle a u32 boundary
  * otherwise the structure size will get blown out.
@@ -475,15 +482,17 @@ struct yaffs_obj {
        YCHAR short_name[YAFFS_SHORT_NAME_LENGTH + 1];
 
 #ifdef CONFIG_YAFFS_WINCE
+       //these are always 64 bits
        u32 win_ctime[2];
        u32 win_mtime[2];
        u32 win_atime[2];
 #else
-       u32 yst_uid;
-       u32 yst_gid;
-       u32 yst_atime;
-       u32 yst_mtime;
-       u32 yst_ctime;
+       //these can be 32 or 64 bits
+       YTIME_T yst_uid;
+       YTIME_T yst_gid;
+       YTIME_T yst_atime;
+       YTIME_T yst_mtime;
+       YTIME_T yst_ctime;
 #endif
 
        u32 yst_rdev;
@@ -741,8 +750,7 @@ struct yaffs_dev {
        int buffered_block;     /* Which block is buffered here? */
        int doing_buffered_block_rewrite;
 
-       struct yaffs_cache *cache;
-       int cache_last_use;
+       struct yaffs_cache_manager cache_mgr;
 
        /* Stuff for background deletion and unlinked files. */
        struct yaffs_obj *unlinked_dir; /* Directory where unlinked and deleted