| 159 | } |
| 160 | |
| 161 | void |
| 162 | zap_leaf_init(zap_leaf_t *l, boolean_t sort) |
| 163 | { |
| 164 | l->l_bs = highbit64(l->l_dbuf->db_size) - 1; |
| 165 | zap_memset(&zap_leaf_phys(l)->l_hdr, 0, |
| 166 | sizeof (struct zap_leaf_header)); |
| 167 | zap_memset(zap_leaf_phys(l)->l_hash, CHAIN_END, |
| 168 | 2*ZAP_LEAF_HASH_NUMENTRIES(l)); |
| 169 | for (int i = 0; i < ZAP_LEAF_NUMCHUNKS(l); i++) { |
| 170 | ZAP_LEAF_CHUNK(l, i).l_free.lf_type = ZAP_CHUNK_FREE; |
| 171 | ZAP_LEAF_CHUNK(l, i).l_free.lf_next = i+1; |
| 172 | } |
| 173 | ZAP_LEAF_CHUNK(l, ZAP_LEAF_NUMCHUNKS(l)-1).l_free.lf_next = CHAIN_END; |
| 174 | zap_leaf_phys(l)->l_hdr.lh_block_type = ZBT_LEAF; |
| 175 | zap_leaf_phys(l)->l_hdr.lh_magic = ZAP_LEAF_MAGIC; |
| 176 | zap_leaf_phys(l)->l_hdr.lh_nfree = ZAP_LEAF_NUMCHUNKS(l); |
| 177 | if (sort) |
| 178 | zap_leaf_phys(l)->l_hdr.lh_flags |= ZLF_ENTRIES_CDSORTED; |
| 179 | } |
| 180 | |
| 181 | /* |
| 182 | * Routines which manipulate leaf chunks (l_chunk[]). |
no test coverage detected