yaffs: More mainlining cleanup
[yaffs2.git] / yaffs_guts.h
index 3b01dfa2549cf7af55aa9b864eb8b76ee00123f3..77c05d3b4924357cb2a9c31531e6392346aea2b5 100644 (file)
 #define YAFFS_TNODES_INTERNAL_MASK     0x7
 #define YAFFS_TNODES_MAX_LEVEL         6
 
-#ifndef CONFIG_YAFFS_NO_YAFFS1
+
+/* Constants for YAFFS1 mode */
 #define YAFFS_BYTES_PER_SPARE          16
 #define YAFFS_BYTES_PER_CHUNK          512
 #define YAFFS_CHUNK_SIZE_SHIFT         9
 #define YAFFS_CHUNKS_PER_BLOCK         32
 #define YAFFS_BYTES_PER_BLOCK  (YAFFS_CHUNKS_PER_BLOCK*YAFFS_BYTES_PER_CHUNK)
-#endif
 
 #define YAFFS_MIN_YAFFS2_CHUNK_SIZE    1024
 #define YAFFS_MIN_YAFFS2_SPARE_SIZE    32
@@ -117,12 +117,11 @@ struct yaffs_cache {
        u8 *data;
 };
 
-/* Tags structures in RAM
+/* yaffs1 tags structures in RAM
  * NB This uses bitfield. Bitfields should not straddle a u32 boundary
  * otherwise the structure size will get blown out.
  */
 
-#ifndef CONFIG_YAFFS_NO_YAFFS1
 struct yaffs_tags {
        unsigned chunk_id:20;
        unsigned serial_number:2;
@@ -137,7 +136,6 @@ union yaffs_tags_union {
        u8 as_bytes[8];
 };
 
-#endif
 
 /* Stuff used for extended tags in YAFFS2 */
 
@@ -281,10 +279,8 @@ struct yaffs_block_info {
        u32 chunk_error_strikes:3;      /* How many times we've had ecc etc
                                failures on this block and tried to reuse it */
 
-#ifdef CONFIG_YAFFS_YAFFS2
        u32 has_shrink_hdr:1;   /* This block has at least one shrink header */
        u32 seq_number;         /* block sequence number for yaffs2 */
-#endif
 
 };
 
@@ -433,9 +429,7 @@ struct yaffs_obj {
 
        u32 yst_mode;
 
-#ifndef CONFIG_YAFFS_NO_SHORT_NAMES
        YCHAR short_name[YAFFS_SHORT_NAME_LENGTH + 1];
-#endif
 
 #ifdef CONFIG_YAFFS_WINCE
        u32 win_ctime[2];
@@ -487,13 +481,12 @@ struct yaffs_checkpt_obj {
 
 /*--------------------- Temporary buffers ----------------
  *
- * These are chunk-sized working buffers. Each device has a few
+ * These are chunk-sized working buffers. Each device has a few.
  */
 
 struct yaffs_buffer {
        u8 *buffer;
-       int line;       /* track from whence this buffer was allocated */
-       int max_line;
+       int in_use;
 };
 
 /*----------------- Device ---------------------------------*/
@@ -522,6 +515,7 @@ struct yaffs_param {
                                 */
        int use_nand_ecc;       /* Flag to decide whether or not to use
                                 * NAND driver ECC on data (yaffs1) */
+        int tags_9bytes;       /* Use 9 byte tags */
        int no_tags_ecc;        /* Flag to decide whether or not to do ECC
                                 * on packed tags (yaffs2) */
 
@@ -549,7 +543,7 @@ struct yaffs_param {
        int (*initialise_flash_fn) (struct yaffs_dev *dev);
        int (*deinitialise_flash_fn) (struct yaffs_dev *dev);
 
-#ifdef CONFIG_YAFFS_YAFFS2
+       /* yaffs2 mode functions */
        int (*write_chunk_tags_fn) (struct yaffs_dev *dev,
                                    int nand_chunk, const u8 *data,
                                    const struct yaffs_ext_tags *tags);
@@ -560,7 +554,6 @@ struct yaffs_param {
        int (*query_block_fn) (struct yaffs_dev *dev, int block_no,
                               enum yaffs_block_state *state,
                               u32 *seq_number);
-#endif
 
        /* The remove_obj_fn function must be supplied by OS flavours that
         * need it.
@@ -888,8 +881,8 @@ int yaffs_check_ff(u8 *buffer, int n_bytes);
 void yaffs_handle_chunk_error(struct yaffs_dev *dev,
                              struct yaffs_block_info *bi);
 
-u8 *yaffs_get_temp_buffer(struct yaffs_dev *dev, int line_no);
-void yaffs_release_temp_buffer(struct yaffs_dev *dev, u8 *buffer, int line_no);
+u8 *yaffs_get_temp_buffer(struct yaffs_dev *dev);
+void yaffs_release_temp_buffer(struct yaffs_dev *dev, u8 *buffer);
 
 struct yaffs_obj *yaffs_find_or_create_by_number(struct yaffs_dev *dev,
                                                 int number,