X-Git-Url: https://yaffs.net/gitweb/?a=blobdiff_plain;f=yaffs_guts.c;h=1fd464d68af798c5fcdd02c537c7804bcbd05a5f;hb=0ce955ac4bac3514486d15b0836985cfa2e88f74;hp=3672e8d41b692bf93088f317d303a8e4ce345f0a;hpb=ffa781d6427fba6469c60d91482079d5643ca7b7;p=yaffs2.git diff --git a/yaffs_guts.c b/yaffs_guts.c index 3672e8d..1fd464d 100644 --- a/yaffs_guts.c +++ b/yaffs_guts.c @@ -980,7 +980,7 @@ static int yaffs_find_chunk_in_group(struct yaffs_dev *dev, int the_chunk, return -1; } -static int yaffs_find_chunk_in_file(struct yaffs_obj *in, int inode_chunk, +int yaffs_find_chunk_in_file(struct yaffs_obj *in, int inode_chunk, struct yaffs_ext_tags *tags) { /*Get the Tnode, then get the level 0 offset chunk offset */ @@ -5060,3 +5060,23 @@ loff_t yaffs_oh_to_size(struct yaffs_obj_hdr *oh) return retval; } + + +void yaffs_count_blocks_by_state(struct yaffs_dev *dev, int bs[10]) +{ + int i; + struct yaffs_block_info *bi; + int s; + + for(i = 0; i < 10; i++) + bs[i] = 0; + + for(i = dev->internal_start_block; i <= dev->internal_end_block; i++) { + bi = yaffs_get_block_info(dev, i); + s = bi->block_state; + if(s > YAFFS_BLOCK_STATE_DEAD || s < YAFFS_BLOCK_STATE_UNKNOWN) + bs[0]++; + else + bs[s]++; + } +}