*/
void
-dns_rcodestats_create(isc_mem_t *mctx, dns_stats_t **statsp);
+dns_rcodestats_create(isc_mem_t *mctx, isc_statsmulti_t **statsp);
/*%<
- * Create a statistics counter structure per assigned rcode.
+ * Create a statistics counter structure per assigned rcode using statsmulti.
*
* Requires:
*\li 'mctx' must be a valid memory context.
*/
void
-dns_rcodestats_increment(dns_stats_t *stats, dns_rcode_t code);
+dns_rcodestats_increment(isc_statsmulti_t *stats, dns_rcode_t code);
/*%<
* Increment the statistics counter for 'code'.
*
* Requires:
- *\li 'stats' is a valid dns_stats_t created by dns_rcodestats_create().
+ *\li 'stats' is a valid isc_statsmulti_t created by dns_rcodestats_create().
*/
void
*/
void
-dns_rcodestats_dump(dns_stats_t *stats, dns_rcodestats_dumper_t dump_fn,
+dns_rcodestats_dump(isc_statsmulti_t *stats, dns_rcodestats_dumper_t dump_fn,
void *arg, unsigned int options);
/*%<
* Dump the current statistics counters in a specified way. For each counter
* such counters are dumped.
*
* Requires:
- *\li 'stats' is a valid dns_stats_t created by dns_generalstats_create().
+ *\li 'stats' is a valid isc_statsmulti_t created by dns_rcodestats_create().
*/
}
void
-dns_rcodestats_create(isc_mem_t *mctx, dns_stats_t **statsp) {
+dns_rcodestats_create(isc_mem_t *mctx, isc_statsmulti_t **statsp) {
REQUIRE(statsp != NULL && *statsp == NULL);
- create_stats(mctx, dns_statstype_rcode, dns_rcode_badcookie + 1,
- statsp);
+ /*
+ * Create rcode statistics using statsmulti for better multithreading performance.
+ * We need dns_rcode_badcookie + 1 counters (0-23, so 24 counters), all are additive.
+ */
+ isc_statsmulti_create(mctx, statsp, dns_rcode_badcookie + 1, 0);
}
void
}
void
-dns_rcodestats_increment(dns_stats_t *stats, dns_rcode_t code) {
- REQUIRE(DNS_STATS_VALID(stats) && stats->type == dns_statstype_rcode);
+dns_rcodestats_increment(isc_statsmulti_t *stats, dns_rcode_t code) {
+ REQUIRE(stats != NULL);
if (code <= dns_rcode_badcookie) {
- isc_stats_increment(stats->counters, (isc_statscounter_t)code);
+ isc_statsmulti_increment(stats, (isc_statscounter_t)code);
}
}
}
void
-dns_rcodestats_dump(dns_stats_t *stats, dns_rcodestats_dumper_t dump_fn,
+dns_rcodestats_dump(isc_statsmulti_t *stats, dns_rcodestats_dumper_t dump_fn,
void *arg0, unsigned int options) {
rcodedumparg_t arg;
- REQUIRE(DNS_STATS_VALID(stats) && stats->type == dns_statstype_rcode);
+ REQUIRE(stats != NULL);
arg.fn = dump_fn;
arg.arg = arg0;
- isc_stats_dump(stats->counters, rcode_dumpcb, &arg, options);
+ isc_statsmulti_dump(stats, rcode_dumpcb, &arg, options);
}
isc_statsmulti_t *nsstats;
isc_statsmulti_t *rcvquerystats;
isc_statsmulti_t *opcodestats;
- dns_stats_t *rcodestats;
+ isc_statsmulti_t *rcodestats;
isc_histomulti_t *udpinstats4;
isc_histomulti_t *udpoutstats4;