Lines Matching refs:dblist
60 ext2_dblist dblist; in make_dblist() local
66 if ((ret_dblist == 0) && fs->dblist && in make_dblist()
67 (fs->dblist->magic == EXT2_ET_MAGIC_DBLIST)) in make_dblist()
70 retval = ext2fs_get_mem(sizeof(struct ext2_struct_dblist), &dblist); in make_dblist()
73 memset(dblist, 0, sizeof(struct ext2_struct_dblist)); in make_dblist()
75 dblist->magic = EXT2_ET_MAGIC_DBLIST; in make_dblist()
76 dblist->fs = fs; in make_dblist()
78 dblist->size = size; in make_dblist()
80 retval = ext2fs_get_num_dirs(fs, &dblist->size); in make_dblist()
83 dblist->size = (dblist->size * 2) + 12; in make_dblist()
85 len = (size_t) sizeof(struct ext2_db_entry) * dblist->size; in make_dblist()
86 dblist->count = count; in make_dblist()
87 retval = ext2fs_get_array(dblist->size, sizeof(struct ext2_db_entry), in make_dblist()
88 &dblist->list); in make_dblist()
93 memcpy(dblist->list, list, len); in make_dblist()
95 memset(dblist->list, 0, len); in make_dblist()
97 *ret_dblist = dblist; in make_dblist()
99 fs->dblist = dblist; in make_dblist()
102 if (dblist) in make_dblist()
103 ext2fs_free_mem(&dblist); in make_dblist()
112 ext2_dblist dblist; in ext2fs_init_dblist() local
115 retval = make_dblist(fs, 0, 0, 0, &dblist); in ext2fs_init_dblist()
119 dblist->sorted = 1; in ext2fs_init_dblist()
121 *ret_dblist = dblist; in ext2fs_init_dblist()
123 fs->dblist = dblist; in ext2fs_init_dblist()
133 ext2_dblist dblist; in ext2fs_copy_dblist() local
137 &dblist); in ext2fs_copy_dblist()
140 dblist->sorted = src->sorted; in ext2fs_copy_dblist()
141 *dest = dblist; in ext2fs_copy_dblist()
155 errcode_t ext2fs_add_dir_block(ext2_dblist dblist, ext2_ino_t ino, blk_t blk, in ext2fs_add_dir_block() argument
162 EXT2_CHECK_MAGIC(dblist, EXT2_ET_MAGIC_DBLIST); in ext2fs_add_dir_block()
164 if (dblist->count >= dblist->size) { in ext2fs_add_dir_block()
165 old_size = dblist->size * sizeof(struct ext2_db_entry); in ext2fs_add_dir_block()
166 dblist->size += dblist->size > 200 ? dblist->size / 2 : 100; in ext2fs_add_dir_block()
167 retval = ext2fs_resize_mem(old_size, (size_t) dblist->size * in ext2fs_add_dir_block()
169 &dblist->list); in ext2fs_add_dir_block()
171 dblist->size -= 100; in ext2fs_add_dir_block()
175 new_entry = dblist->list + ( (int) dblist->count++); in ext2fs_add_dir_block()
180 dblist->sorted = 0; in ext2fs_add_dir_block()
188 errcode_t ext2fs_set_dir_block(ext2_dblist dblist, ext2_ino_t ino, blk_t blk, in ext2fs_set_dir_block() argument
193 EXT2_CHECK_MAGIC(dblist, EXT2_ET_MAGIC_DBLIST); in ext2fs_set_dir_block()
195 for (i=0; i < dblist->count; i++) { in ext2fs_set_dir_block()
196 if ((dblist->list[i].ino != ino) || in ext2fs_set_dir_block()
197 (dblist->list[i].blockcnt != blockcnt)) in ext2fs_set_dir_block()
199 dblist->list[i].blk = blk; in ext2fs_set_dir_block()
200 dblist->sorted = 0; in ext2fs_set_dir_block()
206 void ext2fs_dblist_sort(ext2_dblist dblist, in ext2fs_dblist_sort() argument
212 qsort(dblist->list, (size_t) dblist->count, in ext2fs_dblist_sort()
214 dblist->sorted = 1; in ext2fs_dblist_sort()
220 errcode_t ext2fs_dblist_iterate(ext2_dblist dblist, in ext2fs_dblist_iterate() argument
229 EXT2_CHECK_MAGIC(dblist, EXT2_ET_MAGIC_DBLIST); in ext2fs_dblist_iterate()
231 if (!dblist->sorted) in ext2fs_dblist_iterate()
232 ext2fs_dblist_sort(dblist, 0); in ext2fs_dblist_iterate()
233 for (i=0; i < dblist->count; i++) { in ext2fs_dblist_iterate()
234 ret = (*func)(dblist->fs, &dblist->list[(int)i], priv_data); in ext2fs_dblist_iterate()
257 int ext2fs_dblist_count(ext2_dblist dblist) in ext2fs_dblist_count() argument
259 return (int) dblist->count; in ext2fs_dblist_count()
262 errcode_t ext2fs_dblist_get_last(ext2_dblist dblist, in ext2fs_dblist_get_last() argument
265 EXT2_CHECK_MAGIC(dblist, EXT2_ET_MAGIC_DBLIST); in ext2fs_dblist_get_last()
267 if (dblist->count == 0) in ext2fs_dblist_get_last()
271 *entry = dblist->list + ( (int) dblist->count-1); in ext2fs_dblist_get_last()
275 errcode_t ext2fs_dblist_drop_last(ext2_dblist dblist) in ext2fs_dblist_drop_last() argument
277 EXT2_CHECK_MAGIC(dblist, EXT2_ET_MAGIC_DBLIST); in ext2fs_dblist_drop_last()
279 if (dblist->count == 0) in ext2fs_dblist_drop_last()
282 dblist->count--; in ext2fs_dblist_drop_last()