From: Justin Viiret Date: Mon, 26 Jun 2017 01:15:29 +0000 (+1000) Subject: fdr/teddy: dump confirm lit load X-Git-Tag: v4.6.0^2~146 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cbcc46444b39706cd0b4b6eeb5c6860be2aaca1d;p=thirdparty%2Fvectorscan.git fdr/teddy: dump confirm lit load --- diff --git a/src/fdr/fdr_dump.cpp b/src/fdr/fdr_dump.cpp index ae81f257..0a4d7415 100644 --- a/src/fdr/fdr_dump.cpp +++ b/src/fdr/fdr_dump.cpp @@ -45,7 +45,7 @@ #error No dump support! #endif -using std::unique_ptr; +using namespace std; namespace ue2 { @@ -60,6 +60,17 @@ bool fdrIsTeddy(const FDR *fdr) { return !getFdrDescription(engine); } +static +void dumpLitIndex(const FDRConfirm *fdrc, FILE *f) { + const u32 *lit_index = getConfirmLitIndex(fdrc); + u32 num_lits = 1U << fdrc->nBits; + u32 lits_used = count_if(lit_index, lit_index + num_lits, + [](u32 idx) { return idx != 0; }); + + fprintf(f, " load %u/%u (%0.2f%%)\n", lits_used, num_lits, + (double)lits_used / (double)(num_lits)*100); +} + static void dumpConfirms(const void *fdr_base, u32 conf_offset, u32 num_confirms, FILE *f) { @@ -71,6 +82,7 @@ void dumpConfirms(const void *fdr_base, u32 conf_offset, u32 num_confirms, fprintf(f, " mult 0x%016llx\n", fdrc->mult); fprintf(f, " nbits %u\n", fdrc->nBits); fprintf(f, " groups 0x%016llx\n", fdrc->groups); + dumpLitIndex(fdrc, f); } }