X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Fplugins%2Ftext%2Fpretty%2Fpretty.h;fp=src%2Fplugins%2Ftext%2Fpretty%2Fpretty.h;h=abf192966680f3c75266e3f9b3bb8d9db5623756;hb=5288c8aef93013b72a48cec6851a00b0c91f09dc;hp=2df935402de31af7fd4fb8af7fc701965f7e835b;hpb=ed30eb8d59e3bc1d26808d3414a1fbc5f8bb23d8;p=babeltrace.git diff --git a/src/plugins/text/pretty/pretty.h b/src/plugins/text/pretty/pretty.h index 2df93540..abf19296 100644 --- a/src/plugins/text/pretty/pretty.h +++ b/src/plugins/text/pretty/pretty.h @@ -13,6 +13,12 @@ #include "common/macros.h" #include +/* + * `bt_field_*_enumeration` are backed by 64 bits integers so the maximun + * number of bitflags in any enumeration is 64. + */ +#define ENUMERATION_MAX_BITFLAGS_COUNT (sizeof(uint64_t) * 8) + enum pretty_default { PRETTY_DEFAULT_UNSET, PRETTY_DEFAULT_SHOW, @@ -37,6 +43,7 @@ struct pretty_options { bool print_payload_field_names; bool print_delta_field; + bool print_enum_flags; bool print_loglevel_field; bool print_emf_field; bool print_callsite_field; @@ -72,6 +79,18 @@ struct pretty_component { bool negative_timestamp_warning_done; + /* + * For each bit of the integer backing the enumeration we have a list + * (GPtrArray) of labels (char *) for that bit. + * + * Allocate all label arrays during the initialization of the component + * and reuse the same set of arrays for all enumerations. This prevents + * allocation and deallocation everytime the component encounters a + * enumeration field. Allocating and deallocating that often could + * severely impact performance. + */ + GPtrArray *enum_bit_labels[ENUMERATION_MAX_BITFLAGS_COUNT]; + bt_logging_level log_level; bt_self_component *self_comp; };