Lines Matching defs:region
115 is_region_disabled(struct ftl_layout_region *region)
117 return region->current.blocks == 0 && region->current.offset == FTL_ADDR_INVALID;
121 dump_region(struct spdk_ftl_dev *dev, struct ftl_layout_region *region)
123 if (is_region_disabled(region)) {
127 assert(!(region->current.offset % superblock_region_blocks(dev)));
128 assert(!(region->current.blocks % superblock_region_blocks(dev)));
130 FTL_NOTICELOG(dev, "Region %s\n", region->name);
132 blocks2mib(region->current.offset));
134 blocks2mib(region->current.blocks));
195 struct ftl_layout_region *reg = &dev->layout.region[reg_type];
218 &dev->layout.region[reg_type])) {
235 &dev->layout.region[reg_type])) {
254 /* Only a single region version is present in upgrade from the legacy layout */
266 struct ftl_layout_region *reg = &dev->layout.region[reg_type];
277 struct ftl_layout_region *reg = &dev->layout.region[reg_type];
292 /* Initialize L2P region */
310 layout->region[FTL_LAYOUT_REGION_TYPE_BAND_MD].mirror_type = FTL_LAYOUT_REGION_TYPE_BAND_MD_MIRROR;
333 * Initialize trim metadata region
335 blocks = layout->region[FTL_LAYOUT_REGION_TYPE_L2P].current.blocks;
341 /* Initialize trim metadata mirror region */
346 layout->region[FTL_LAYOUT_REGION_TYPE_TRIM_MD].mirror_type = FTL_LAYOUT_REGION_TYPE_TRIM_MD_MIRROR;
375 layout->region[FTL_LAYOUT_REGION_TYPE_NVC_MD].mirror_type = FTL_LAYOUT_REGION_TYPE_NVC_MD_MIRROR;
378 * Initialize data region on NV cache
385 /* Here is the place to add necessary region placeholders for the creation of new regions */
438 /* Initialize L2P region */
455 layout->region[FTL_LAYOUT_REGION_TYPE_BAND_MD].mirror_type = FTL_LAYOUT_REGION_TYPE_BAND_MD_MIRROR;
470 * Initialize trim metadata region
472 blocks = layout->region[FTL_LAYOUT_REGION_TYPE_L2P].current.blocks;
478 /* Initialize trim metadata mirror region */
483 layout->region[FTL_LAYOUT_REGION_TYPE_TRIM_MD].mirror_type = FTL_LAYOUT_REGION_TYPE_TRIM_MD_MIRROR;
486 * Initialize trim log region
493 /* Initialize trim log mirror region */
499 layout->region[FTL_LAYOUT_REGION_TYPE_TRIM_LOG].mirror_type =
520 layout->region[FTL_LAYOUT_REGION_TYPE_NVC_MD].mirror_type = FTL_LAYOUT_REGION_TYPE_NVC_MD_MIRROR;
622 layout->region[i].mirror_type = FTL_LAYOUT_REGION_TYPE_INVALID;
623 /* Mark the region inactive */
624 layout->region[i].type = FTL_LAYOUT_REGION_TYPE_INVALID;
702 struct ftl_layout_region *region = &layout->region[FTL_LAYOUT_REGION_TYPE_SB];
713 /* Initialize superblock region */
720 assert(region->bdev_desc != NULL);
721 assert(region->ioch != NULL);
722 assert(region->current.offset == 0);
729 layout->region[FTL_LAYOUT_REGION_TYPE_SB].mirror_type = FTL_LAYOUT_REGION_TYPE_SB_BASE;
731 region = &layout->region[FTL_LAYOUT_REGION_TYPE_SB_BASE];
732 assert(region->current.offset == 0);
737 offset = region->current.offset + region->current.blocks;
823 reg = &dev->layout.region[reg_type];
855 reg = &dev->layout.region[blob_entry->type];
874 dev->layout.region[reg_type].type = reg_type;
875 dev->layout.region[reg_type].current.version = 0;
876 dev->layout.region[reg_type].current.offset = UINT64_MAX;
877 dev->layout.region[reg_type].current.blocks = 0;