-
- len = sprintf(ret, SUMMARY_FORMAT,
- (size_t)tdb->map_size,
- tally_num(keys) + tally_num(data),
- tally_num(zones),
- tally_min(zones), tally_mean(zones), tally_max(zones),
- zonesg ? zonesg : "",
- tally_num(keys),
- tally_min(keys), tally_mean(keys), tally_max(keys),
- keysg ? keysg : "",
- tally_min(data), tally_mean(data), tally_max(data),
- datag ? datag : "",
- tally_min(extra), tally_mean(extra), tally_max(extra),
- extrag ? extrag : "",
- tally_num(freet),
- tally_min(freet), tally_mean(freet), tally_max(freet),
- freeg ? freeg : "",
- tally_total(uncoal, NULL),
- tally_min(uncoal), tally_mean(uncoal), tally_max(uncoal),
- uncoalg ? uncoalg : "",
- count_hash(tdb, offsetof(struct tdb_header, hashtable),
- TDB_TOPLEVEL_HASH_BITS),
- 1 << TDB_TOPLEVEL_HASH_BITS,
- tally_num(hashes),
- tally_min(hashes), tally_mean(hashes), tally_max(hashes),
- hashesg ? hashesg : "",
- tally_total(keys, NULL) * 100.0 / tdb->map_size,
- tally_total(data, NULL) * 100.0 / tdb->map_size,
- tally_total(extra, NULL) * 100.0 / tdb->map_size,
- tally_total(freet, NULL) * 100.0 / tdb->map_size,
- (tally_num(keys) + tally_num(freet) + tally_num(hashes))
- * sizeof(struct tdb_used_record) * 100.0 / tdb->map_size,
- (tally_num(zones) * sizeof(struct free_zone_header)
- + total_buckets * sizeof(tdb_off_t))
- * 100.0 / tdb->map_size,
- (tally_num(hashes)
- * (sizeof(tdb_off_t) << TDB_SUBLEVEL_HASH_BITS)
- + (sizeof(tdb_off_t) << TDB_TOPLEVEL_HASH_BITS))
- * 100.0 / tdb->map_size);
-
- for (i = 0; i < max_bucket; i++) {
- size_t min, max;
- sizes_for_bucket(i, &min, &max);
- if (min == max) {
- len += sprintf(ret + len, BUCKET_SUMMARY_FORMAT_A,
- min, tally_total(buckets[i], NULL),
- tally_min(buckets[i]),
- tally_mean(buckets[i]),
- tally_max(buckets[i]),
- bucketsg[i] ? bucketsg[i] : "");
- } else {
- len += sprintf(ret + len, BUCKET_SUMMARY_FORMAT_B,
- min, max, tally_total(buckets[i], NULL),
- tally_min(buckets[i]),
- tally_mean(buckets[i]),
- tally_max(buckets[i]),
- bucketsg[i] ? bucketsg[i] : "");
- }