Lines Matching refs:zn
78 zap_hash(zap_name_t *zn) in zap_hash() argument
80 zap_t *zap = zn->zn_zap; in zap_hash()
85 h = *(uint64_t *)zn->zn_key_orig; in zap_hash()
92 const uint64_t *wp = zn->zn_key_norm; in zap_hash()
94 ASSERT(zn->zn_key_intlen == 8); in zap_hash()
95 for (int i = 0; i < zn->zn_key_norm_numints; in zap_hash()
99 for (int j = 0; j < zn->zn_key_intlen; j++) { in zap_hash()
106 const uint8_t *cp = zn->zn_key_norm; in zap_hash()
115 int len = zn->zn_key_norm_numints - 1; in zap_hash()
117 ASSERT(zn->zn_key_intlen == 1); in zap_hash()
152 zap_match(zap_name_t *zn, const char *matchname) in zap_match() argument
154 ASSERT(!(zap_getflags(zn->zn_zap) & ZAP_FLAG_UINT64_KEY)); in zap_match()
156 if (zn->zn_matchtype & MT_NORMALIZE) { in zap_match()
159 if (zap_normalize(zn->zn_zap, matchname, norm, in zap_match()
160 zn->zn_normflags) != 0) in zap_match()
163 return (strcmp(zn->zn_key_norm, norm) == 0); in zap_match()
165 return (strcmp(zn->zn_key_orig, matchname) == 0); in zap_match()
170 zap_name_free(zap_name_t *zn) in zap_name_free() argument
172 kmem_free(zn, sizeof (zap_name_t)); in zap_name_free()
178 zap_name_t *zn = kmem_alloc(sizeof (zap_name_t), KM_SLEEP); in zap_name_alloc() local
180 zn->zn_zap = zap; in zap_name_alloc()
181 zn->zn_key_intlen = sizeof (*key); in zap_name_alloc()
182 zn->zn_key_orig = key; in zap_name_alloc()
183 zn->zn_key_orig_numints = strlen(zn->zn_key_orig) + 1; in zap_name_alloc()
184 zn->zn_matchtype = mt; in zap_name_alloc()
185 zn->zn_normflags = zap->zap_normflags; in zap_name_alloc()
193 zn->zn_normflags &= ~U8_TEXTPREP_TOUPPER; in zap_name_alloc()
200 if (zap_normalize(zap, key, zn->zn_normbuf, in zap_name_alloc()
202 zap_name_free(zn); in zap_name_alloc()
205 zn->zn_key_norm = zn->zn_normbuf; in zap_name_alloc()
206 zn->zn_key_norm_numints = strlen(zn->zn_key_norm) + 1; in zap_name_alloc()
209 zap_name_free(zn); in zap_name_alloc()
212 zn->zn_key_norm = zn->zn_key_orig; in zap_name_alloc()
213 zn->zn_key_norm_numints = zn->zn_key_orig_numints; in zap_name_alloc()
216 zn->zn_hash = zap_hash(zn); in zap_name_alloc()
218 if (zap->zap_normflags != zn->zn_normflags) { in zap_name_alloc()
223 if (zap_normalize(zap, key, zn->zn_normbuf, in zap_name_alloc()
224 zn->zn_normflags) != 0) { in zap_name_alloc()
225 zap_name_free(zn); in zap_name_alloc()
228 zn->zn_key_norm_numints = strlen(zn->zn_key_norm) + 1; in zap_name_alloc()
231 return (zn); in zap_name_alloc()
237 zap_name_t *zn = kmem_alloc(sizeof (zap_name_t), KM_SLEEP); in zap_name_alloc_uint64() local
240 zn->zn_zap = zap; in zap_name_alloc_uint64()
241 zn->zn_key_intlen = sizeof (*key); in zap_name_alloc_uint64()
242 zn->zn_key_orig = zn->zn_key_norm = key; in zap_name_alloc_uint64()
243 zn->zn_key_orig_numints = zn->zn_key_norm_numints = numints; in zap_name_alloc_uint64()
244 zn->zn_matchtype = 0; in zap_name_alloc_uint64()
246 zn->zn_hash = zap_hash(zn); in zap_name_alloc_uint64()
247 return (zn); in zap_name_alloc_uint64()
306 mze_find(zap_name_t *zn) in mze_find() argument
311 avl_tree_t *avl = &zn->zn_zap->zap_m.zap_avl; in mze_find()
313 ASSERT(zn->zn_zap->zap_ismicro); in mze_find()
314 ASSERT(RW_LOCK_HELD(&zn->zn_zap->zap_rwlock)); in mze_find()
316 mze_tofind.mze_hash = zn->zn_hash; in mze_find()
322 for (; mze && mze->mze_hash == zn->zn_hash; mze = AVL_NEXT(avl, mze)) { in mze_find()
323 ASSERT3U(mze->mze_cd, ==, MZE_PHYS(zn->zn_zap, mze)->mze_cd); in mze_find()
324 if (zap_match(zn, MZE_PHYS(zn->zn_zap, mze)->mze_name)) in mze_find()
426 zap_name_t *zn; in mzap_open() local
429 zn = zap_name_alloc(zap, mze->mze_name, 0); in mzap_open()
430 mze_insert(zap, i, zn->zn_hash); in mzap_open()
431 zap_name_free(zn); in mzap_open()
632 zap_name_t *zn = zap_name_alloc(zap, mze->mze_name, 0); in mzap_upgrade() local
633 err = fzap_add_cd(zn, 8, 1, &mze->mze_value, mze->mze_cd, in mzap_upgrade()
635 zap = zn->zn_zap; /* fzap_add_cd() may change zap */ in mzap_upgrade()
636 zap_name_free(zn); in mzap_upgrade()
843 mzap_normalization_conflict(zap_t *zap, zap_name_t *zn, mzap_ent_t *mze) in mzap_normalization_conflict() argument
856 if (zn == NULL) { in mzap_normalization_conflict()
857 zn = zap_name_alloc(zap, MZE_PHYS(zap, mze)->mze_name, in mzap_normalization_conflict()
861 if (zap_match(zn, MZE_PHYS(zap, other)->mze_name)) { in mzap_normalization_conflict()
863 zap_name_free(zn); in mzap_normalization_conflict()
874 zap_name_free(zn); in mzap_normalization_conflict()
898 zap_name_t *zn = zap_name_alloc(zap, name, mt); in zap_lookup_impl() local
899 if (zn == NULL) in zap_lookup_impl()
903 err = fzap_lookup(zn, integer_size, num_integers, buf, in zap_lookup_impl()
906 mzap_ent_t *mze = mze_find(zn); in zap_lookup_impl()
921 zn, mze); in zap_lookup_impl()
926 zap_name_free(zn); in zap_lookup_impl()
984 zap_name_t *zn = zap_name_alloc_uint64(zap, key, key_numints); in zap_prefetch_uint64() local
985 if (zn == NULL) { in zap_prefetch_uint64()
990 fzap_prefetch(zn); in zap_prefetch_uint64()
991 zap_name_free(zn); in zap_prefetch_uint64()
1006 zap_name_t *zn = zap_name_alloc_uint64(zap, key, key_numints); in zap_lookup_uint64() local
1007 if (zn == NULL) { in zap_lookup_uint64()
1012 err = fzap_lookup(zn, integer_size, num_integers, buf, in zap_lookup_uint64()
1014 zap_name_free(zn); in zap_lookup_uint64()
1039 zap_name_t *zn = zap_name_alloc(zap, name, 0); in zap_length() local
1040 if (zn == NULL) { in zap_length()
1045 err = fzap_length(zn, integer_size, num_integers); in zap_length()
1047 mzap_ent_t *mze = mze_find(zn); in zap_length()
1057 zap_name_free(zn); in zap_length()
1072 zap_name_t *zn = zap_name_alloc_uint64(zap, key, key_numints); in zap_length_uint64() local
1073 if (zn == NULL) { in zap_length_uint64()
1077 err = fzap_length(zn, integer_size, num_integers); in zap_length_uint64()
1078 zap_name_free(zn); in zap_length_uint64()
1084 mzap_addent(zap_name_t *zn, uint64_t value) in mzap_addent() argument
1086 zap_t *zap = zn->zn_zap; in mzap_addent()
1094 ASSERT(strcmp(zn->zn_key_orig, mze->mze_name) != 0); in mzap_addent()
1098 uint32_t cd = mze_find_unused_cd(zap, zn->zn_hash); in mzap_addent()
1108 (void) strcpy(mze->mze_name, zn->zn_key_orig); in mzap_addent()
1114 mze_insert(zap, i, zn->zn_hash); in mzap_addent()
1133 zap_name_t *zn = zap_name_alloc(zap, key, 0); in zap_add_impl() local
1134 if (zn == NULL) { in zap_add_impl()
1139 err = fzap_add(zn, integer_size, num_integers, val, tag, tx); in zap_add_impl()
1140 zap = zn->zn_zap; /* fzap_add() may change zap */ in zap_add_impl()
1143 err = mzap_upgrade(&zn->zn_zap, tag, tx, 0); in zap_add_impl()
1145 err = fzap_add(zn, integer_size, num_integers, val, in zap_add_impl()
1148 zap = zn->zn_zap; /* fzap_add() may change zap */ in zap_add_impl()
1150 if (mze_find(zn) != NULL) { in zap_add_impl()
1153 mzap_addent(zn, *intval); in zap_add_impl()
1156 ASSERT(zap == zn->zn_zap); in zap_add_impl()
1157 zap_name_free(zn); in zap_add_impl()
1206 zap_name_t *zn = zap_name_alloc_uint64(zap, key, key_numints); in zap_add_uint64() local
1207 if (zn == NULL) { in zap_add_uint64()
1211 err = fzap_add(zn, integer_size, num_integers, val, FTAG, tx); in zap_add_uint64()
1212 zap = zn->zn_zap; /* fzap_add() may change zap */ in zap_add_uint64()
1213 zap_name_free(zn); in zap_add_uint64()
1240 zap_name_t *zn = zap_name_alloc(zap, name, 0); in zap_update() local
1241 if (zn == NULL) { in zap_update()
1246 err = fzap_update(zn, integer_size, num_integers, val, in zap_update()
1248 zap = zn->zn_zap; /* fzap_update() may change zap */ in zap_update()
1253 err = mzap_upgrade(&zn->zn_zap, FTAG, tx, 0); in zap_update()
1255 err = fzap_update(zn, integer_size, num_integers, in zap_update()
1258 zap = zn->zn_zap; /* fzap_update() may change zap */ in zap_update()
1260 mzap_ent_t *mze = mze_find(zn); in zap_update()
1265 mzap_addent(zn, *intval); in zap_update()
1268 ASSERT(zap == zn->zn_zap); in zap_update()
1269 zap_name_free(zn); in zap_update()
1286 zap_name_t *zn = zap_name_alloc_uint64(zap, key, key_numints); in zap_update_uint64() local
1287 if (zn == NULL) { in zap_update_uint64()
1291 err = fzap_update(zn, integer_size, num_integers, val, FTAG, tx); in zap_update_uint64()
1292 zap = zn->zn_zap; /* fzap_update() may change zap */ in zap_update_uint64()
1293 zap_name_free(zn); in zap_update_uint64()
1311 zap_name_t *zn = zap_name_alloc(zap, name, mt); in zap_remove_impl() local
1312 if (zn == NULL) in zap_remove_impl()
1315 err = fzap_remove(zn, tx); in zap_remove_impl()
1317 mzap_ent_t *mze = mze_find(zn); in zap_remove_impl()
1327 zap_name_free(zn); in zap_remove_impl()
1370 zap_name_t *zn = zap_name_alloc_uint64(zap, key, key_numints); in zap_remove_uint64() local
1371 if (zn == NULL) { in zap_remove_uint64()
1375 err = fzap_remove(zn, tx); in zap_remove_uint64()
1376 zap_name_free(zn); in zap_remove_uint64()