diff options
Diffstat (limited to 'trace2/tr2_tgt_perf.c')
-rw-r--r-- | trace2/tr2_tgt_perf.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/trace2/tr2_tgt_perf.c b/trace2/tr2_tgt_perf.c index e69375e979..adae803263 100644 --- a/trace2/tr2_tgt_perf.c +++ b/trace2/tr2_tgt_perf.c @@ -578,6 +578,22 @@ static void fn_timer(const struct tr2_timer_metadata *meta, strbuf_release(&buf_payload); } +static void fn_counter(const struct tr2_counter_metadata *meta, + const struct tr2_counter *counter, + int is_final_data) +{ + const char *event_name = is_final_data ? "counter" : "th_counter"; + struct strbuf buf_payload = STRBUF_INIT; + + strbuf_addf(&buf_payload, "name:%s value:%"PRIu64, + meta->name, + counter->value); + + perf_io_write_fl(__FILE__, __LINE__, event_name, NULL, NULL, NULL, + meta->category, &buf_payload); + strbuf_release(&buf_payload); +} + struct tr2_tgt tr2_tgt_perf = { .pdst = &tr2dst_perf, @@ -610,4 +626,5 @@ struct tr2_tgt tr2_tgt_perf = { .pfn_data_json_fl = fn_data_json_fl, .pfn_printf_va_fl = fn_printf_va_fl, .pfn_timer = fn_timer, + .pfn_counter = fn_counter, }; |