Lines Matching refs:region

511 	vmmr_region_t *region;  in vmmr_alloc()  local
512 region = kmem_zalloc(sizeof (vmmr_region_t), KM_SLEEP); in vmmr_alloc()
513 avl_create(&region->vr_spans, vmmr_cmp_region_addr, in vmmr_alloc()
515 region->vr_size = sz; in vmmr_alloc()
530 avl_add(&region->vr_spans, span); in vmmr_alloc()
541 region->vr_transient = true; in vmmr_alloc()
543 list_insert_tail(&vmmr_alloc_regions, region); in vmmr_alloc()
546 *resp = region; in vmmr_alloc()
551 vmmr_region_mem_at(vmmr_region_t *region, uintptr_t off) in vmmr_region_mem_at() argument
554 return (hat_kpm_pfn2va(vmmr_region_pfn_at(region, off))); in vmmr_region_mem_at()
558 vmmr_region_pfn_at(vmmr_region_t *region, uintptr_t off) in vmmr_region_pfn_at() argument
561 VERIFY3U(off, <, region->vr_size); in vmmr_region_pfn_at()
567 vmmr_span_t *span = avl_find(&region->vr_spans, &search, &where); in vmmr_region_pfn_at()
570 span = avl_nearest(&region->vr_spans, where, AVL_BEFORE); in vmmr_region_pfn_at()
580 vmmr_free(vmmr_region_t *region) in vmmr_free() argument
583 if (!region->vr_transient) { in vmmr_free()
584 VERIFY3U(region->vr_size, <=, vmmr_alloc_sz); in vmmr_free()
586 VERIFY3U(region->vr_size, <=, vmmr_alloc_transient_sz); in vmmr_free()
588 list_remove(&vmmr_alloc_regions, region); in vmmr_free()
592 for (uintptr_t off = 0; off < region->vr_size; off += PAGESIZE) { in vmmr_free()
593 bzero(vmmr_region_mem_at(region, off), PAGESIZE); in vmmr_free()
601 while ((span = avl_destroy_nodes(&region->vr_spans, &cookie)) != NULL) { in vmmr_free()
605 avl_destroy(&region->vr_spans); in vmmr_free()
606 if (!region->vr_transient) { in vmmr_free()
607 vmmr_free_sz += region->vr_size; in vmmr_free()
608 vmmr_alloc_sz -= region->vr_size; in vmmr_free()
610 vmmr_free_transient_sz += region->vr_size; in vmmr_free()
611 vmmr_alloc_transient_sz -= region->vr_size; in vmmr_free()
614 if (region->vr_transient) { in vmmr_free()
619 VERIFY0(vmmr_remove(region->vr_size, true)); in vmmr_free()
621 kmem_free(region, sizeof (*region)); in vmmr_free()