124 *
125 * normflags specifies what normalization will be done. values are:
126 * 0: no normalization (legacy on-disk format, supports MT_EXACT matching
127 * only)
128 * U8_TEXTPREP_TOLOWER: case normalization will be performed.
129 * MT_FIRST/MT_BEST matching will find entries that match without
130 * regard to case (eg. looking for "foo" can find an entry "Foo").
131 * Eventually, other flags will permit unicode normalization as well.
132 */
133 uint64_t zap_create(objset_t *ds, dmu_object_type_t ot,
134 dmu_object_type_t bonustype, int bonuslen, dmu_tx_t *tx);
135 uint64_t zap_create_norm(objset_t *ds, int normflags, dmu_object_type_t ot,
136 dmu_object_type_t bonustype, int bonuslen, dmu_tx_t *tx);
137 uint64_t zap_create_flags(objset_t *os, int normflags, zap_flags_t flags,
138 dmu_object_type_t ot, int leaf_blockshift, int indirect_blockshift,
139 dmu_object_type_t bonustype, int bonuslen, dmu_tx_t *tx);
140 uint64_t zap_create_link(objset_t *os, dmu_object_type_t ot,
141 uint64_t parent_obj, const char *name, dmu_tx_t *tx);
142
143 /*
144 * Create a new zapobj with no attributes from the given (unallocated)
145 * object number.
146 */
147 int zap_create_claim(objset_t *ds, uint64_t obj, dmu_object_type_t ot,
148 dmu_object_type_t bonustype, int bonuslen, dmu_tx_t *tx);
149 int zap_create_claim_norm(objset_t *ds, uint64_t obj,
150 int normflags, dmu_object_type_t ot,
151 dmu_object_type_t bonustype, int bonuslen, dmu_tx_t *tx);
152
153 /*
154 * The zapobj passed in must be a valid ZAP object for all of the
155 * following routines.
156 */
157
158 /*
159 * Destroy this zapobj and all its attributes.
160 *
161 * Frees the object number using dmu_object_free.
162 */
163 int zap_destroy(objset_t *ds, uint64_t zapobj, dmu_tx_t *tx);
|
124 *
125 * normflags specifies what normalization will be done. values are:
126 * 0: no normalization (legacy on-disk format, supports MT_EXACT matching
127 * only)
128 * U8_TEXTPREP_TOLOWER: case normalization will be performed.
129 * MT_FIRST/MT_BEST matching will find entries that match without
130 * regard to case (eg. looking for "foo" can find an entry "Foo").
131 * Eventually, other flags will permit unicode normalization as well.
132 */
133 uint64_t zap_create(objset_t *ds, dmu_object_type_t ot,
134 dmu_object_type_t bonustype, int bonuslen, dmu_tx_t *tx);
135 uint64_t zap_create_norm(objset_t *ds, int normflags, dmu_object_type_t ot,
136 dmu_object_type_t bonustype, int bonuslen, dmu_tx_t *tx);
137 uint64_t zap_create_flags(objset_t *os, int normflags, zap_flags_t flags,
138 dmu_object_type_t ot, int leaf_blockshift, int indirect_blockshift,
139 dmu_object_type_t bonustype, int bonuslen, dmu_tx_t *tx);
140 uint64_t zap_create_link(objset_t *os, dmu_object_type_t ot,
141 uint64_t parent_obj, const char *name, dmu_tx_t *tx);
142
143 /*
144 * Initialize an already-allocated object.
145 */
146 void mzap_create_impl(objset_t *os, uint64_t obj, int normflags,
147 zap_flags_t flags, dmu_tx_t *tx);
148
149 /*
150 * Create a new zapobj with no attributes from the given (unallocated)
151 * object number.
152 */
153 int zap_create_claim(objset_t *ds, uint64_t obj, dmu_object_type_t ot,
154 dmu_object_type_t bonustype, int bonuslen, dmu_tx_t *tx);
155 int zap_create_claim_norm(objset_t *ds, uint64_t obj,
156 int normflags, dmu_object_type_t ot,
157 dmu_object_type_t bonustype, int bonuslen, dmu_tx_t *tx);
158
159 /*
160 * The zapobj passed in must be a valid ZAP object for all of the
161 * following routines.
162 */
163
164 /*
165 * Destroy this zapobj and all its attributes.
166 *
167 * Frees the object number using dmu_object_free.
168 */
169 int zap_destroy(objset_t *ds, uint64_t zapobj, dmu_tx_t *tx);
|