Lines Matching defs:zn

76 zap_hash(zap_name_t *zn)
78 zap_t *zap = zn->zn_zap;
83 h = *(uint64_t *)zn->zn_key_orig;
91 const uint64_t *wp = zn->zn_key_norm;
93 ASSERT(zn->zn_key_intlen == 8);
94 for (i = 0; i < zn->zn_key_norm_numints; wp++, i++) {
98 for (j = 0; j < zn->zn_key_intlen; j++) {
106 const uint8_t *cp = zn->zn_key_norm;
115 len = zn->zn_key_norm_numints - 1;
117 ASSERT(zn->zn_key_intlen == 1);
155 zap_match(zap_name_t *zn, const char *matchname)
157 ASSERT(!(zap_getflags(zn->zn_zap) & ZAP_FLAG_UINT64_KEY));
159 if (zn->zn_matchtype == MT_FIRST) {
162 if (zap_normalize(zn->zn_zap, matchname, norm) != 0)
165 return (strcmp(zn->zn_key_norm, norm) == 0);
168 return (strcmp(zn->zn_key_orig, matchname) == 0);
173 zap_name_free(zap_name_t *zn)
175 kmem_free(zn, sizeof (zap_name_t));
181 zap_name_t *zn = kmem_alloc(sizeof (zap_name_t), KM_SLEEP);
183 zn->zn_zap = zap;
184 zn->zn_key_intlen = sizeof (*key);
185 zn->zn_key_orig = key;
186 zn->zn_key_orig_numints = strlen(zn->zn_key_orig) + 1;
187 zn->zn_matchtype = mt;
189 if (zap_normalize(zap, key, zn->zn_normbuf) != 0) {
190 zap_name_free(zn);
193 zn->zn_key_norm = zn->zn_normbuf;
194 zn->zn_key_norm_numints = strlen(zn->zn_key_norm) + 1;
197 zap_name_free(zn);
200 zn->zn_key_norm = zn->zn_key_orig;
201 zn->zn_key_norm_numints = zn->zn_key_orig_numints;
204 zn->zn_hash = zap_hash(zn);
205 return (zn);
211 zap_name_t *zn = kmem_alloc(sizeof (zap_name_t), KM_SLEEP);
214 zn->zn_zap = zap;
215 zn->zn_key_intlen = sizeof (*key);
216 zn->zn_key_orig = zn->zn_key_norm = key;
217 zn->zn_key_orig_numints = zn->zn_key_norm_numints = numints;
218 zn->zn_matchtype = MT_EXACT;
220 zn->zn_hash = zap_hash(zn);
221 return (zn);
289 mze_find(zap_name_t *zn)
294 avl_tree_t *avl = &zn->zn_zap->zap_m.zap_avl;
296 ASSERT(zn->zn_zap->zap_ismicro);
297 ASSERT(RW_LOCK_HELD(&zn->zn_zap->zap_rwlock));
299 mze_tofind.mze_hash = zn->zn_hash;
306 for (; mze && mze->mze_hash == zn->zn_hash; mze = AVL_NEXT(avl, mze)) {
307 ASSERT3U(mze->mze_cd, ==, MZE_PHYS(zn->zn_zap, mze)->mze_cd);
308 if (zap_match(zn, MZE_PHYS(zn->zn_zap, mze)->mze_name))
311 if (zn->zn_matchtype == MT_BEST) {
312 zn->zn_matchtype = MT_FIRST;
417 zap_name_t *zn;
420 zn = zap_name_alloc(zap, mze->mze_name,
422 mze_insert(zap, i, zn->zn_hash);
423 zap_name_free(zn);
616 zap_name_t *zn;
621 zn = zap_name_alloc(zap, mze->mze_name, MT_EXACT);
622 err = fzap_add_cd(zn, 8, 1, &mze->mze_value, mze->mze_cd,
624 zap = zn->zn_zap; /* fzap_add_cd() may change zap */
625 zap_name_free(zn);
772 * zn may be NULL; if not specified, it will be computed if needed.
776 mzap_normalization_conflict(zap_t *zap, zap_name_t *zn, mzap_ent_t *mze)
790 if (zn == NULL) {
791 zn = zap_name_alloc(zap, MZE_PHYS(zap, mze)->mze_name,
795 if (zap_match(zn, MZE_PHYS(zap, other)->mze_name)) {
797 zap_name_free(zn);
808 zap_name_free(zn);
832 zap_name_t *zn;
834 zn = zap_name_alloc(zap, name, mt);
835 if (zn == NULL)
839 err = fzap_lookup(zn, integer_size, num_integers, buf,
842 mze = mze_find(zn);
857 zn, mze);
862 zap_name_free(zn);
917 zap_name_t *zn;
922 zn = zap_name_alloc_uint64(zap, key, key_numints);
923 if (zn == NULL) {
928 fzap_prefetch(zn);
929 zap_name_free(zn);
940 zap_name_t *zn;
945 zn = zap_name_alloc_uint64(zap, key, key_numints);
946 if (zn == NULL) {
951 err = fzap_lookup(zn, integer_size, num_integers, buf,
953 zap_name_free(zn);
975 zap_name_t *zn;
980 zn = zap_name_alloc(zap, name, MT_EXACT);
981 if (zn == NULL) {
986 err = fzap_length(zn, integer_size, num_integers);
988 mze = mze_find(zn);
998 zap_name_free(zn);
1009 zap_name_t *zn;
1014 zn = zap_name_alloc_uint64(zap, key, key_numints);
1015 if (zn == NULL) {
1019 err = fzap_length(zn, integer_size, num_integers);
1020 zap_name_free(zn);
1026 mzap_addent(zap_name_t *zn, uint64_t value)
1029 zap_t *zap = zn->zn_zap;
1038 ASSERT(strcmp(zn->zn_key_orig, mze->mze_name) != 0);
1042 cd = mze_find_unused_cd(zap, zn->zn_hash);
1052 (void) strcpy(mze->mze_name, zn->zn_key_orig);
1058 mze_insert(zap, i, zn->zn_hash);
1078 zap_name_t *zn;
1083 zn = zap_name_alloc(zap, key, MT_EXACT);
1084 if (zn == NULL) {
1089 err = fzap_add(zn, integer_size, num_integers, val, FTAG, tx);
1090 zap = zn->zn_zap; /* fzap_add() may change zap */
1093 err = mzap_upgrade(&zn->zn_zap, FTAG, tx, 0);
1095 err = fzap_add(zn, integer_size, num_integers, val,
1098 zap = zn->zn_zap; /* fzap_add() may change zap */
1100 mze = mze_find(zn);
1104 mzap_addent(zn, *intval);
1107 ASSERT(zap == zn->zn_zap);
1108 zap_name_free(zn);
1121 zap_name_t *zn;
1126 zn = zap_name_alloc_uint64(zap, key, key_numints);
1127 if (zn == NULL) {
1131 err = fzap_add(zn, integer_size, num_integers, val, FTAG, tx);
1132 zap = zn->zn_zap; /* fzap_add() may change zap */
1133 zap_name_free(zn);
1147 zap_name_t *zn;
1162 zn = zap_name_alloc(zap, name, MT_EXACT);
1163 if (zn == NULL) {
1168 err = fzap_update(zn, integer_size, num_integers, val,
1170 zap = zn->zn_zap; /* fzap_update() may change zap */
1175 err = mzap_upgrade(&zn->zn_zap, FTAG, tx, 0);
1177 err = fzap_update(zn, integer_size, num_integers,
1180 zap = zn->zn_zap; /* fzap_update() may change zap */
1182 mze = mze_find(zn);
1187 mzap_addent(zn, *intval);
1190 ASSERT(zap == zn->zn_zap);
1191 zap_name_free(zn);
1203 zap_name_t *zn;
1209 zn = zap_name_alloc_uint64(zap, key, key_numints);
1210 if (zn == NULL) {
1214 err = fzap_update(zn, integer_size, num_integers, val, FTAG, tx);
1215 zap = zn->zn_zap; /* fzap_update() may change zap */
1216 zap_name_free(zn);
1235 zap_name_t *zn;
1240 zn = zap_name_alloc(zap, name, mt);
1241 if (zn == NULL) {
1246 err = fzap_remove(zn, tx);
1248 mze = mze_find(zn);
1258 zap_name_free(zn);
1269 zap_name_t *zn;
1274 zn = zap_name_alloc_uint64(zap, key, key_numints);
1275 if (zn == NULL) {
1279 err = fzap_remove(zn, tx);
1280 zap_name_free(zn);
1477 zap_name_t *zn = zap_name_alloc(zap, name, MT_EXACT);
1478 if (zn) {
1479 err = fzap_count_write(zn, add, towrite,
1481 zap_name_free(zn);