Lines Matching refs:entry
78 struct layout_tracker_entry *entry; in layout_tracker_free_entries() local
80 while ((entry = TAILQ_FIRST(&tracker->layout_head))) { in layout_tracker_free_entries()
81 TAILQ_REMOVE(&tracker->layout_head, entry, layout_entry); in layout_tracker_free_entries()
82 free(entry); in layout_tracker_free_entries()
100 struct layout_tracker_entry *entry; in layout_region_find_min_free() local
104 TAILQ_FOREACH(entry, &tracker->layout_head, layout_entry) { in layout_region_find_min_free()
107 if (entry->reg.type != FTL_LAYOUT_REGION_TYPE_FREE) { in layout_region_find_min_free()
111 align_offs = entry->reg.blk_offs; in layout_region_find_min_free()
112 align_sz = entry->reg.blk_sz; in layout_region_find_min_free()
115 align_sz -= (align_offs - entry->reg.blk_offs); in layout_region_find_min_free()
119 if (!min_free_entry || min_free_entry->reg.blk_sz > entry->reg.blk_sz) { in layout_region_find_min_free()
120 min_free_entry = entry; in layout_region_find_min_free()
131 uint32_t reg_ver, struct layout_tracker_entry *entry) in layout_region_find_from() argument
135 TAILQ_FOREACH_FROM(entry, &tracker->layout_head, layout_entry) { in layout_region_find_from()
136 if ((entry->reg.type == reg_type || reg_type == FTL_LAYOUT_REGION_TYPE_INVALID) in layout_region_find_from()
137 && (entry->reg.ver == reg_ver || reg_ver == REG_VER_ANY)) { in layout_region_find_from()
138 return entry; in layout_region_find_from()
156 uint32_t reg_ver, struct layout_tracker_entry *entry) in layout_region_find_next() argument
158 if ((entry = TAILQ_NEXT(entry, layout_entry))) { in layout_region_find_next()
159 return layout_region_find_from(tracker, reg_type, reg_ver, entry); in layout_region_find_next()
355 struct layout_tracker_entry *entry = layout_region_find_first(tracker, reg_type, reg_ver); in ftl_layout_tracker_bdev_rm_region() local
357 if (!entry) { in ftl_layout_tracker_bdev_rm_region()
362 entry->reg.type = FTL_LAYOUT_REGION_TYPE_FREE; in ftl_layout_tracker_bdev_rm_region()
363 entry->reg.ver = 0; in ftl_layout_tracker_bdev_rm_region()
366 entry_rm = TAILQ_PREV(entry, layout_tracker, layout_entry); in ftl_layout_tracker_bdev_rm_region()
369 entry->reg.blk_offs = entry_rm->reg.blk_offs; in ftl_layout_tracker_bdev_rm_region()
370 entry->reg.blk_sz += entry_rm->reg.blk_sz; in ftl_layout_tracker_bdev_rm_region()
373 entry_check = TAILQ_PREV(entry, layout_tracker, layout_entry); in ftl_layout_tracker_bdev_rm_region()
384 entry_rm = TAILQ_NEXT(entry, layout_entry); in ftl_layout_tracker_bdev_rm_region()
387 entry->reg.blk_sz += entry_rm->reg.blk_sz; in ftl_layout_tracker_bdev_rm_region()
390 entry_check = TAILQ_NEXT(entry, layout_entry); in ftl_layout_tracker_bdev_rm_region()
407 struct layout_tracker_entry *entry; in ftl_layout_tracker_bdev_find_next_region() local
415 entry = layout_region_find_first(tracker, reg_type, REG_VER_ANY); in ftl_layout_tracker_bdev_find_next_region()
418 entry = SPDK_CONTAINEROF(*search_ctx, struct layout_tracker_entry, reg); in ftl_layout_tracker_bdev_find_next_region()
419 entry = layout_region_find_next(tracker, reg_type, REG_VER_ANY, entry); in ftl_layout_tracker_bdev_find_next_region()
421 *search_ctx = entry ? &entry->reg : NULL; in ftl_layout_tracker_bdev_find_next_region()
429 struct layout_tracker_entry *entry; in ftl_layout_tracker_bdev_blob_store() local
434 TAILQ_FOREACH(entry, &tracker->layout_head, layout_entry) { in ftl_layout_tracker_bdev_blob_store()
442 if (entry->reg.type == FTL_LAYOUT_REGION_TYPE_FREE) { in ftl_layout_tracker_bdev_blob_store()
447 blob_entry->type = entry->reg.type; in ftl_layout_tracker_bdev_blob_store()
448 blob_entry->ver = entry->reg.ver; in ftl_layout_tracker_bdev_blob_store()
449 blob_entry->blk_offs = entry->reg.blk_offs; in ftl_layout_tracker_bdev_blob_store()
450 blob_entry->blk_sz = entry->reg.blk_sz; in ftl_layout_tracker_bdev_blob_store()