X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs2.git;a=blobdiff_plain;f=yaffs_yaffs2.c;h=5162f15fc6e1b183173f2e29e389f369b11203c9;hp=76623ad35f99adb2fb58227e2af818b36a875ad0;hb=9131fecc79ad4e5fbdb775cdc067bc80aae5adb8;hpb=a5bab2056ca3c68d3e15568f81a6e1d697d23da5 diff --git a/yaffs_yaffs2.c b/yaffs_yaffs2.c index 76623ad..5162f15 100644 --- a/yaffs_yaffs2.c +++ b/yaffs_yaffs2.c @@ -41,12 +41,12 @@ * yaffs2_find_oldest_dirty_seq() * Calculate the oldest dirty sequence number if we don't know it. */ -void yaffs_calc_oldest_dirty_seq(yaffs_dev_t *dev) +void yaffs_calc_oldest_dirty_seq(struct yaffs_dev *dev) { int i; unsigned seq; unsigned block_no = 0; - yaffs_block_info_t *b; + struct yaffs_block_info *b; if(!dev->param.is_yaffs2) return; @@ -72,7 +72,7 @@ void yaffs_calc_oldest_dirty_seq(yaffs_dev_t *dev) } -void yaffs2_find_oldest_dirty_seq(yaffs_dev_t *dev) +void yaffs2_find_oldest_dirty_seq(struct yaffs_dev *dev) { if(!dev->param.is_yaffs2) return; @@ -87,7 +87,7 @@ void yaffs2_find_oldest_dirty_seq(yaffs_dev_t *dev) * becomes invalid). If the value matches the oldest then we clear * dev->oldest_dirty_seq to force its recomputation. */ -void yaffs2_clear_oldest_dirty_seq(yaffs_dev_t *dev, yaffs_block_info_t *bi) +void yaffs2_clear_oldest_dirty_seq(struct yaffs_dev *dev, struct yaffs_block_info *bi) { if(!dev->param.is_yaffs2) @@ -104,7 +104,7 @@ void yaffs2_clear_oldest_dirty_seq(yaffs_dev_t *dev, yaffs_block_info_t *bi) * Update the oldest dirty sequence number whenever we dirty a block. * Only do this if the oldest_dirty_seq is actually being tracked. */ -void yaffs2_update_oldest_dirty_seq(yaffs_dev_t *dev, unsigned block_no, yaffs_block_info_t *bi) +void yaffs2_update_oldest_dirty_seq(struct yaffs_dev *dev, unsigned block_no, struct yaffs_block_info *bi) { if(!dev->param.is_yaffs2) return; @@ -117,8 +117,8 @@ void yaffs2_update_oldest_dirty_seq(yaffs_dev_t *dev, unsigned block_no, yaffs_b } } -int yaffs_block_ok_for_gc(yaffs_dev_t *dev, - yaffs_block_info_t *bi) +int yaffs_block_ok_for_gc(struct yaffs_dev *dev, + struct yaffs_block_info *bi) { if (!dev->param.is_yaffs2) @@ -140,14 +140,14 @@ int yaffs_block_ok_for_gc(yaffs_dev_t *dev, * periodically finds the oldest full block by sequence number for refreshing. * Only for yaffs2. */ -__u32 yaffs2_find_refresh_block(yaffs_dev_t *dev) +u32 yaffs2_find_refresh_block(struct yaffs_dev *dev) { - __u32 b ; + u32 b ; - __u32 oldest = 0; - __u32 oldest_seq = 0; + u32 oldest = 0; + u32 oldest_seq = 0; - yaffs_block_info_t *bi; + struct yaffs_block_info *bi; if(!dev->param.is_yaffs2) return oldest; @@ -197,7 +197,7 @@ __u32 yaffs2_find_refresh_block(yaffs_dev_t *dev) return oldest; } -int yaffs2_checkpt_required(yaffs_dev_t *dev) +int yaffs2_checkpt_required(struct yaffs_dev *dev) { int nblocks; @@ -211,7 +211,7 @@ int yaffs2_checkpt_required(yaffs_dev_t *dev) (nblocks >= YAFFS_CHECKPOINT_MIN_BLOCKS); } -int yaffs_calc_checkpt_blocks_required(yaffs_dev_t *dev) +int yaffs_calc_checkpt_blocks_required(struct yaffs_dev *dev) { int retval; @@ -225,14 +225,14 @@ int yaffs_calc_checkpt_blocks_required(yaffs_dev_t *dev) int n_blocks; int dev_blocks = (dev->param.end_block - dev->param.start_block + 1); - n_bytes += sizeof(yaffs_checkpt_validty_t); - n_bytes += sizeof(yaffs_checkpt_dev_t); - n_bytes += dev_blocks * sizeof(yaffs_block_info_t); + n_bytes += sizeof(struct yaffs_checkpt_validity); + n_bytes += sizeof(struct yaffs_checkpt_dev); + n_bytes += dev_blocks * sizeof(struct yaffs_block_info); n_bytes += dev_blocks * dev->chunk_bit_stride; - n_bytes += (sizeof(yaffs_checkpt_obj_t) + sizeof(__u32)) * (dev->n_obj); - n_bytes += (dev->tnode_size + sizeof(__u32)) * (dev->n_tnodes); - n_bytes += sizeof(yaffs_checkpt_validty_t); - n_bytes += sizeof(__u32); /* checksum*/ + n_bytes += (sizeof(struct yaffs_checkpt_obj) + sizeof(u32)) * (dev->n_obj); + n_bytes += (dev->tnode_size + sizeof(u32)) * (dev->n_tnodes); + n_bytes += sizeof(struct yaffs_checkpt_validity); + n_bytes += sizeof(u32); /* checksum*/ /* Round up and add 2 blocks to allow for some bad blocks, so add 3 */ @@ -250,9 +250,9 @@ int yaffs_calc_checkpt_blocks_required(yaffs_dev_t *dev) /*--------------------- Checkpointing --------------------*/ -static int yaffs2_wr_checkpt_validity_marker(yaffs_dev_t *dev, int head) +static int yaffs2_wr_checkpt_validity_marker(struct yaffs_dev *dev, int head) { - yaffs_checkpt_validty_t cp; + struct yaffs_checkpt_validity cp; memset(&cp, 0, sizeof(cp)); @@ -265,9 +265,9 @@ static int yaffs2_wr_checkpt_validity_marker(yaffs_dev_t *dev, int head) 1 : 0; } -static int yaffs2_rd_checkpt_validty_marker(yaffs_dev_t *dev, int head) +static int yaffs2_rd_checkpt_validity_marker(struct yaffs_dev *dev, int head) { - yaffs_checkpt_validty_t cp; + struct yaffs_checkpt_validity cp; int ok; ok = (yaffs2_checkpt_rd(dev, &cp, sizeof(cp)) == sizeof(cp)); @@ -280,8 +280,8 @@ static int yaffs2_rd_checkpt_validty_marker(yaffs_dev_t *dev, int head) return ok ? 1 : 0; } -static void yaffs2_dev_to_checkpt_dev(yaffs_checkpt_dev_t *cp, - yaffs_dev_t *dev) +static void yaffs2_dev_to_checkpt_dev(struct yaffs_checkpt_dev *cp, + struct yaffs_dev *dev) { cp->n_erased_blocks = dev->n_erased_blocks; cp->alloc_block = dev->alloc_block; @@ -295,8 +295,8 @@ static void yaffs2_dev_to_checkpt_dev(yaffs_checkpt_dev_t *cp, } -static void yaffs_checkpt_dev_to_dev(yaffs_dev_t *dev, - yaffs_checkpt_dev_t *cp) +static void yaffs_checkpt_dev_to_dev(struct yaffs_dev *dev, + struct yaffs_checkpt_dev *cp) { dev->n_erased_blocks = cp->n_erased_blocks; dev->alloc_block = cp->alloc_block; @@ -310,11 +310,11 @@ static void yaffs_checkpt_dev_to_dev(yaffs_dev_t *dev, } -static int yaffs2_wr_checkpt_dev(yaffs_dev_t *dev) +static int yaffs2_wr_checkpt_dev(struct yaffs_dev *dev) { - yaffs_checkpt_dev_t cp; - __u32 n_bytes; - __u32 n_blocks = (dev->internal_end_block - dev->internal_start_block + 1); + struct yaffs_checkpt_dev cp; + u32 n_bytes; + u32 n_blocks = (dev->internal_end_block - dev->internal_start_block + 1); int ok; @@ -326,7 +326,7 @@ static int yaffs2_wr_checkpt_dev(yaffs_dev_t *dev) /* Write block info */ if (ok) { - n_bytes = n_blocks * sizeof(yaffs_block_info_t); + n_bytes = n_blocks * sizeof(struct yaffs_block_info); ok = (yaffs2_checkpt_wr(dev, dev->block_info, n_bytes) == n_bytes); } @@ -339,11 +339,11 @@ static int yaffs2_wr_checkpt_dev(yaffs_dev_t *dev) } -static int yaffs2_rd_checkpt_dev(yaffs_dev_t *dev) +static int yaffs2_rd_checkpt_dev(struct yaffs_dev *dev) { - yaffs_checkpt_dev_t cp; - __u32 n_bytes; - __u32 n_blocks = (dev->internal_end_block - dev->internal_start_block + 1); + struct yaffs_checkpt_dev cp; + u32 n_bytes; + u32 n_blocks = (dev->internal_end_block - dev->internal_start_block + 1); int ok; @@ -357,7 +357,7 @@ static int yaffs2_rd_checkpt_dev(yaffs_dev_t *dev) yaffs_checkpt_dev_to_dev(dev, &cp); - n_bytes = n_blocks * sizeof(yaffs_block_info_t); + n_bytes = n_blocks * sizeof(struct yaffs_block_info); ok = (yaffs2_checkpt_rd(dev, dev->block_info, n_bytes) == n_bytes); @@ -370,8 +370,8 @@ static int yaffs2_rd_checkpt_dev(yaffs_dev_t *dev) return ok ? 1 : 0; } -static void yaffs2_obj_checkpt_obj(yaffs_checkpt_obj_t *cp, - yaffs_obj_t *obj) +static void yaffs2_obj_checkpt_obj(struct yaffs_checkpt_obj *cp, + struct yaffs_obj *obj) { cp->obj_id = obj->obj_id; @@ -393,10 +393,10 @@ static void yaffs2_obj_checkpt_obj(yaffs_checkpt_obj_t *cp, cp->size_or_equiv_obj = obj->variant.hardlink_variant.equiv_id; } -static int taffs2_checkpt_obj_to_obj(yaffs_obj_t *obj, yaffs_checkpt_obj_t *cp) +static int taffs2_checkpt_obj_to_obj(struct yaffs_obj *obj, struct yaffs_checkpt_obj *cp) { - yaffs_obj_t *parent; + struct yaffs_obj *parent; if (obj->variant_type != cp->variant_type) { T(YAFFS_TRACE_ERROR, (TSTR("Checkpoint read object %d type %d " @@ -451,11 +451,11 @@ static int taffs2_checkpt_obj_to_obj(yaffs_obj_t *obj, yaffs_checkpt_obj_t *cp) -static int yaffs2_checkpt_tnode_worker(yaffs_obj_t *in, yaffs_tnode_t *tn, - __u32 level, int chunk_offset) +static int yaffs2_checkpt_tnode_worker(struct yaffs_obj *in, struct yaffs_tnode *tn, + u32 level, int chunk_offset) { int i; - yaffs_dev_t *dev = in->my_dev; + struct yaffs_dev *dev = in->my_dev; int ok = 1; if (tn) { @@ -470,7 +470,7 @@ static int yaffs2_checkpt_tnode_worker(yaffs_obj_t *in, yaffs_tnode_t *tn, } } } else if (level == 0) { - __u32 base_offset = chunk_offset << YAFFS_TNODES_LEVEL0_BITS; + u32 base_offset = chunk_offset << YAFFS_TNODES_LEVEL0_BITS; ok = (yaffs2_checkpt_wr(dev, &base_offset, sizeof(base_offset)) == sizeof(base_offset)); if (ok) @@ -482,9 +482,9 @@ static int yaffs2_checkpt_tnode_worker(yaffs_obj_t *in, yaffs_tnode_t *tn, } -static int yaffs2_wr_checkpt_tnodes(yaffs_obj_t *obj) +static int yaffs2_wr_checkpt_tnodes(struct yaffs_obj *obj) { - __u32 end_marker = ~0; + u32 end_marker = ~0; int ok = 1; if (obj->variant_type == YAFFS_OBJECT_TYPE_FILE) { @@ -500,13 +500,13 @@ static int yaffs2_wr_checkpt_tnodes(yaffs_obj_t *obj) return ok ? 1 : 0; } -static int yaffs2_rd_checkpt_tnodes(yaffs_obj_t *obj) +static int yaffs2_rd_checkpt_tnodes(struct yaffs_obj *obj) { - __u32 base_chunk; + u32 base_chunk; int ok = 1; - yaffs_dev_t *dev = obj->my_dev; - yaffs_file_s *file_stuct_ptr = &obj->variant.file_variant; - yaffs_tnode_t *tn; + struct yaffs_dev *dev = obj->my_dev; + struct yaffs_file_var *file_stuct_ptr = &obj->variant.file_variant; + struct yaffs_tnode *tn; int nread = 0; ok = (yaffs2_checkpt_rd(dev, &base_chunk, sizeof(base_chunk)) == sizeof(base_chunk)); @@ -541,10 +541,10 @@ static int yaffs2_rd_checkpt_tnodes(yaffs_obj_t *obj) } -static int yaffs2_wr_checkpt_objs(yaffs_dev_t *dev) +static int yaffs2_wr_checkpt_objs(struct yaffs_dev *dev) { - yaffs_obj_t *obj; - yaffs_checkpt_obj_t cp; + struct yaffs_obj *obj; + struct yaffs_checkpt_obj cp; int i; int ok = 1; struct ylist_head *lh; @@ -557,7 +557,7 @@ static int yaffs2_wr_checkpt_objs(yaffs_dev_t *dev) for (i = 0; ok && i < YAFFS_NOBJECT_BUCKETS; i++) { ylist_for_each(lh, &dev->obj_bucket[i].list) { if (lh) { - obj = ylist_entry(lh, yaffs_obj_t, hash_link); + obj = ylist_entry(lh, struct yaffs_obj, hash_link); if (!obj->defered_free) { yaffs2_obj_checkpt_obj(&cp, obj); cp.struct_type = sizeof(cp); @@ -576,7 +576,7 @@ static int yaffs2_wr_checkpt_objs(yaffs_dev_t *dev) } /* Dump end of list */ - memset(&cp, 0xFF, sizeof(yaffs_checkpt_obj_t)); + memset(&cp, 0xFF, sizeof(struct yaffs_checkpt_obj)); cp.struct_type = sizeof(cp); if (ok) @@ -585,13 +585,13 @@ static int yaffs2_wr_checkpt_objs(yaffs_dev_t *dev) return ok ? 1 : 0; } -static int yaffs2_rd_checkpt_objs(yaffs_dev_t *dev) +static int yaffs2_rd_checkpt_objs(struct yaffs_dev *dev) { - yaffs_obj_t *obj; - yaffs_checkpt_obj_t cp; + struct yaffs_obj *obj; + struct yaffs_checkpt_obj cp; int ok = 1; int done = 0; - yaffs_obj_t *hard_list = NULL; + struct yaffs_obj *hard_list = NULL; while (ok && !done) { ok = (yaffs2_checkpt_rd(dev, &cp, sizeof(cp)) == sizeof(cp)); @@ -630,9 +630,9 @@ static int yaffs2_rd_checkpt_objs(yaffs_dev_t *dev) return ok ? 1 : 0; } -static int yaffs2_wr_checkpt_sum(yaffs_dev_t *dev) +static int yaffs2_wr_checkpt_sum(struct yaffs_dev *dev) { - __u32 checkpt_sum; + u32 checkpt_sum; int ok; yaffs2_get_checkpt_sum(dev, &checkpt_sum); @@ -645,10 +645,10 @@ static int yaffs2_wr_checkpt_sum(yaffs_dev_t *dev) return 1; } -static int yaffs2_rd_checkpt_sum(yaffs_dev_t *dev) +static int yaffs2_rd_checkpt_sum(struct yaffs_dev *dev) { - __u32 checkpt_sum0; - __u32 checkpt_sum1; + u32 checkpt_sum0; + u32 checkpt_sum1; int ok; yaffs2_get_checkpt_sum(dev, &checkpt_sum0); @@ -665,7 +665,7 @@ static int yaffs2_rd_checkpt_sum(yaffs_dev_t *dev) } -static int yaffs2_wr_checkpt_data(yaffs_dev_t *dev) +static int yaffs2_wr_checkpt_data(struct yaffs_dev *dev) { int ok = 1; @@ -708,7 +708,7 @@ static int yaffs2_wr_checkpt_data(yaffs_dev_t *dev) return dev->is_checkpointed; } -static int yaffs2_rd_checkpt_data(yaffs_dev_t *dev) +static int yaffs2_rd_checkpt_data(struct yaffs_dev *dev) { int ok = 1; @@ -725,7 +725,7 @@ static int yaffs2_rd_checkpt_data(yaffs_dev_t *dev) if (ok) { T(YAFFS_TRACE_CHECKPOINT, (TSTR("read checkpoint validity" TENDSTR))); - ok = yaffs2_rd_checkpt_validty_marker(dev, 1); + ok = yaffs2_rd_checkpt_validity_marker(dev, 1); } if (ok) { T(YAFFS_TRACE_CHECKPOINT, (TSTR("read checkpoint device" TENDSTR))); @@ -737,7 +737,7 @@ static int yaffs2_rd_checkpt_data(yaffs_dev_t *dev) } if (ok) { T(YAFFS_TRACE_CHECKPOINT, (TSTR("read checkpoint validity" TENDSTR))); - ok = yaffs2_rd_checkpt_validty_marker(dev, 0); + ok = yaffs2_rd_checkpt_validity_marker(dev, 0); } if (ok) { @@ -757,7 +757,7 @@ static int yaffs2_rd_checkpt_data(yaffs_dev_t *dev) } -void yaffs2_checkpt_invalidate(yaffs_dev_t *dev) +void yaffs2_checkpt_invalidate(struct yaffs_dev *dev) { if (dev->is_checkpointed || dev->blocks_in_checkpt > 0) { @@ -769,7 +769,7 @@ void yaffs2_checkpt_invalidate(yaffs_dev_t *dev) } -int yaffs_checkpoint_save(yaffs_dev_t *dev) +int yaffs_checkpoint_save(struct yaffs_dev *dev) { T(YAFFS_TRACE_CHECKPOINT, (TSTR("save entry: is_checkpointed %d"TENDSTR), dev->is_checkpointed)); @@ -788,7 +788,7 @@ int yaffs_checkpoint_save(yaffs_dev_t *dev) return dev->is_checkpointed; } -int yaffs2_checkpt_restore(yaffs_dev_t *dev) +int yaffs2_checkpt_restore(struct yaffs_dev *dev) { int retval; T(YAFFS_TRACE_CHECKPOINT, (TSTR("restore entry: is_checkpointed %d"TENDSTR), dev->is_checkpointed)); @@ -806,7 +806,7 @@ int yaffs2_checkpt_restore(yaffs_dev_t *dev) return retval; } -int yaffs2_handle_hole(yaffs_obj_t *obj, loff_t new_size) +int yaffs2_handle_hole(struct yaffs_obj *obj, loff_t new_size) { /* if new_size > old_file_size. * We're going to be writing a hole. @@ -818,9 +818,9 @@ int yaffs2_handle_hole(yaffs_obj_t *obj, loff_t new_size) int increase; int small_hole ; int result = YAFFS_OK; - yaffs_dev_t *dev = NULL; + struct yaffs_dev *dev = NULL; - __u8 *local_buffer = NULL; + u8 *local_buffer = NULL; int small_increase_ok = 0; @@ -910,9 +910,9 @@ static int yaffs2_ybicmp(const void *a, const void *b) return aseq - bseq; } -int yaffs2_scan_backwards(yaffs_dev_t *dev) +int yaffs2_scan_backwards(struct yaffs_dev *dev) { - yaffs_ext_tags tags; + struct yaffs_ext_tags tags; int blk; int block_iter; int start_iter; @@ -923,16 +923,16 @@ int yaffs2_scan_backwards(yaffs_dev_t *dev) int result; int c; int deleted; - yaffs_block_state_t state; - yaffs_obj_t *hard_list = NULL; - yaffs_block_info_t *bi; - __u32 seq_number; - yaffs_obj_header *oh; - yaffs_obj_t *in; - yaffs_obj_t *parent; + enum yaffs_block_state state; + struct yaffs_obj *hard_list = NULL; + struct yaffs_block_info *bi; + u32 seq_number; + struct yaffs_obj_hdr *oh; + struct yaffs_obj *in; + struct yaffs_obj *parent; int n_blocks = dev->internal_end_block - dev->internal_start_block + 1; int is_unlinked; - __u8 *chunk_data; + u8 *chunk_data; int file_size; int is_shrink; @@ -1146,7 +1146,7 @@ int yaffs2_scan_backwards(yaffs_dev_t *dev) } else if (tags.chunk_id > 0) { /* chunk_id > 0 so it is a data chunk... */ unsigned int endpos; - __u32 chunk_base = + u32 chunk_base = (tags.chunk_id - 1) * dev->data_bytes_per_chunk; found_chunks = 1; @@ -1226,7 +1226,7 @@ int yaffs2_scan_backwards(yaffs_dev_t *dev) chunk_data, NULL); - oh = (yaffs_obj_header *) chunk_data; + oh = (struct yaffs_obj_hdr *) chunk_data; if (dev->param.inband_tags) { /* Fix up the header if they got corrupted by inband tags */ @@ -1262,10 +1262,10 @@ int yaffs2_scan_backwards(yaffs_dev_t *dev) oh->type == YAFFS_OBJECT_TYPE_FILE) || (tags.extra_available && tags.extra_obj_type == YAFFS_OBJECT_TYPE_FILE))) { - __u32 this_size = + u32 this_size = (oh) ? oh->file_size : tags. extra_length; - __u32 parent_obj_id = + u32 parent_obj_id = (oh) ? oh-> parent_obj_id : tags. extra_parent_id;