void stat_block (dev_s *dev, u64 blkno, btree_stat_s *bs, int height) { void *data; data = bget(dev, blkno); if (!data) return; switch (type(data)) { case LEAF: stat_leaf(data, bs); break; case BRANCH: stat_branch(dev, data, bs, height + 1); break; default: eprintf("Unknown block type %d\n", type(data)); break; } if (height > bs->st_height) { bs->st_height = height; } bput(data); }
void stat_node ( void *node, btree_stat_s *bs, unint height) { head_s *h = node; if (!h) return; switch (h->h_magic) { case LEAF: stat_leaf(node, bs); break; case BRANCH: stat_branch(node, bs, height + 1); break; default: eprintf("Unknown block magic %x\n", h->h_magic); break; } if (height > bs->st_height) { bs->st_height = height; } }
static void stat_node ( struct address_space *mapping, u64 blknum, btree_stat_s *bs, unint height) { head_s *h; h = tau_bget(mapping, blknum); if (!h) return; switch (h->h_magic) { case LEAF: stat_leaf((leaf_s *)h, bs); break; case BRANCH: stat_branch(mapping, (branch_s *)h, bs, height + 1); break; default: eprintk("Unknown block magic %x\n", h->h_magic); break; } if (height > bs->st_height) { bs->st_height = height; } tau_bput(h); }