Lines Matching refs:zblk
383 zulu_shadow_tree_insert(struct zulu_hat *zhat, struct zulu_hat_blk *zblk) in zulu_shadow_tree_insert() argument
390 ivaddr = zblk->zulu_hat_blk_vaddr & ZULU_SHADOW_BLK_MASK; in zulu_shadow_tree_insert()
392 end = zblk->zulu_hat_blk_vaddr + ZULU_HAT_PGSZ(zblk->zulu_hat_blk_size); in zulu_shadow_tree_insert()
398 end = zblk->zulu_hat_blk_vaddr + in zulu_shadow_tree_insert()
399 ZULU_HAT_PGSZ(zblk->zulu_hat_blk_size); in zulu_shadow_tree_insert()
400 if (zblk->zulu_hat_blk_vaddr < sblk->min_addr) { in zulu_shadow_tree_insert()
401 sblk->min_addr = zblk->zulu_hat_blk_vaddr; in zulu_shadow_tree_insert()
414 sblk->min_addr = zblk->zulu_hat_blk_vaddr; in zulu_shadow_tree_insert()
420 zblk->zulu_shadow_blk = sblk; in zulu_shadow_tree_insert()
432 zulu_shadow_tree_delete(struct zulu_hat *zhat, struct zulu_hat_blk *zblk) in zulu_shadow_tree_delete() argument
436 ASSERT(zblk->zulu_shadow_blk != NULL); in zulu_shadow_tree_delete()
438 sblk = zblk->zulu_shadow_blk; in zulu_shadow_tree_delete()
461 uint64_t end = zblk->zulu_hat_blk_vaddr + in zulu_shadow_tree_delete()
462 ZULU_HAT_PGSZ(zblk->zulu_hat_blk_size); in zulu_shadow_tree_delete()
464 if (zblk->zulu_hat_blk_vaddr == sblk->min_addr) { in zulu_shadow_tree_delete()
468 sblk->max_addr = zblk->zulu_hat_blk_vaddr; in zulu_shadow_tree_delete()
472 zblk->zulu_shadow_blk = NULL; in zulu_shadow_tree_delete()
502 zulu_hat_insert_map(struct zulu_hat *zhat, struct zulu_hat_blk *zblk) in zulu_hat_insert_map() argument
506 tsb_hash = ZULU_TSB_HASH(zblk->zulu_hat_blk_vaddr, in zulu_hat_insert_map()
507 zblk->zulu_hat_blk_size, zhat->zulu_tsb_size); in zulu_hat_insert_map()
510 tnf_opaque, zblkp, zblk, in zulu_hat_insert_map()
511 tnf_opaque, vaddr, zblk->zulu_hat_blk_vaddr, in zulu_hat_insert_map()
516 zulu_shadow_tree_insert(zhat, zblk); in zulu_hat_insert_map()
523 zblk->zulu_hash_prev = NULL; in zulu_hat_insert_map()
524 zblk->zulu_hash_next = ZULU_MAP_HASH_HEAD(zhat, in zulu_hat_insert_map()
525 zblk->zulu_hat_blk_vaddr, zblk->zulu_hat_blk_size); in zulu_hat_insert_map()
526 if (zblk->zulu_hash_next) { in zulu_hat_insert_map()
527 zblk->zulu_hash_next->zulu_hash_prev = zblk; in zulu_hat_insert_map()
529 ZULU_MAP_HASH_HEAD(zhat, zblk->zulu_hat_blk_vaddr, in zulu_hat_insert_map()
530 zblk->zulu_hat_blk_size) = zblk; in zulu_hat_insert_map()
533 zhat->zulu_tsb[tsb_hash] = zblk->zulu_hat_blk_tte; in zulu_hat_insert_map()
541 zulu_hat_remove_map(struct zulu_hat *zhat, struct zulu_hat_blk *zblk) in zulu_hat_remove_map() argument
543 int tsb_hash = ZULU_TSB_HASH(zblk->zulu_hat_blk_vaddr, in zulu_hat_remove_map()
544 zblk->zulu_hat_blk_size, zhat->zulu_tsb_size); in zulu_hat_remove_map()
547 tnf_opaque, vaddr, zblk->zulu_hat_blk_vaddr, in zulu_hat_remove_map()
553 zulu_shadow_tree_delete(zhat, zblk); in zulu_hat_remove_map()
558 if (zblk->zulu_hash_prev) { in zulu_hat_remove_map()
559 zblk->zulu_hash_prev->zulu_hash_next = zblk->zulu_hash_next; in zulu_hat_remove_map()
561 ZULU_MAP_HASH_HEAD(zhat, zblk->zulu_hat_blk_vaddr, in zulu_hat_remove_map()
562 zblk->zulu_hat_blk_size) = NULL; in zulu_hat_remove_map()
564 if (zblk->zulu_hash_next) { in zulu_hat_remove_map()
565 zblk->zulu_hash_next->zulu_hash_prev = zblk->zulu_hash_prev; in zulu_hat_remove_map()
567 zblk->zulu_hash_next = NULL; in zulu_hat_remove_map()
568 zblk->zulu_hash_prev = NULL; in zulu_hat_remove_map()
575 zblk->zulu_hat_blk_vaddr) { in zulu_hat_remove_map()
836 struct zulu_hat_blk *zblk; in zulu_do_hat_memload() local
862 zblk = (struct zulu_hat_blk *)blk; in zulu_do_hat_memload()
863 zblk->zulu_hat_blk_vaddr = (uintptr_t)vaddr; in zulu_do_hat_memload()
864 zblk->zulu_hat_blk_pfn = (uint_t)pfn; in zulu_do_hat_memload()
868 zblk->zulu_hat_blk_perm = (attr & PROT_WRITE) ? 1 : 0; in zulu_do_hat_memload()
869 zblk->zulu_hat_blk_size = use_pszc ? page->p_szc : 0; in zulu_do_hat_memload()
870 zblk->zulu_hat_blk_valid = 1; in zulu_do_hat_memload()
872 switch (zblk->zulu_hat_blk_size) { in zulu_do_hat_memload()
891 zulu_hat_insert_map(zhat, zblk); in zulu_do_hat_memload()
893 zuluvm_load_tte(zhat, vaddr, zblk->zulu_hat_blk_pfn, in zulu_do_hat_memload()
894 zblk->zulu_hat_blk_perm, zblk->zulu_hat_blk_size); in zulu_do_hat_memload()
897 ZULU_VADDR((uint64_t)zblk->zulu_hat_blk_vaddr); in zulu_do_hat_memload()
950 add_to_free_list(struct zulu_hat_blk **pfree_list, struct zulu_hat_blk *zblk) in add_to_free_list() argument
952 zblk->zulu_hash_next = *pfree_list; in add_to_free_list()
953 *pfree_list = zblk; in add_to_free_list()
1126 struct zulu_hat_blk *zblk = (struct zulu_hat_blk *)xblk; in zulu_hat_pageunload() local
1135 tnf_opaque, vaddr, zblk->zulu_hat_blk_vaddr, in zulu_hat_pageunload()
1136 tnf_int, pg_size, zblk->zulu_hat_blk_size); in zulu_hat_pageunload()
1139 if (zblk->zulu_shadow_blk != NULL) { in zulu_hat_pageunload()
1143 zulu_hat_remove_map(zhat, zblk); in zulu_hat_pageunload()
1154 (caddr_t)(uintptr_t)(zblk->zulu_hat_blk_page << in zulu_hat_pageunload()
1156 zblk->zulu_hat_blk_size); in zulu_hat_pageunload()
1182 struct zulu_hat_blk *zblk; in zulu_hat_swapout() local
1201 for (zblk = zhat->hash_tbl[i]; zblk != NULL; zblk = next) { in zulu_hat_swapout()
1202 next = zblk->zulu_hash_next; in zulu_hat_swapout()
1203 zulu_hat_remove_map(zhat, zblk); in zulu_hat_swapout()
1204 add_to_free_list(&free_list, zblk); in zulu_hat_swapout()