mirror of
https://github.com/torvalds/linux.git
synced 2026-09-23 22:14:03 +02:00
The function browser belongs in libperf-ui.a, but that archive is also linked into python/perf.so, where builtin command objects are unavailable. The browser therefore cannot depend on types or callbacks owned by builtin-c2c.c. Move c2c_hists, compute_stats, c2c_hist_entry, and the shared column formatting definitions from builtin-c2c.c to a new util/c2c.h. Move c2c_fmt_free() and c2c_fmt_equal() to a new util/c2c.c. Keep struct perf_c2c, the command instance, and perf_c2c__browse_cacheline() private to builtin-c2c.c. No functional change. Signed-off-by: Jiebin Sun <jiebin.sun@intel.com> Reviewed-by: Tianyou Li <tianyou.li@intel.com> Reviewed-by: Wangyang Guo <wangyang.guo@intel.com> Reviewed-by: Ian Rogers <irogers@google.com> Cc: Dapeng Mi <dapeng1.mi@linux.intel.com> Cc: James Clark <james.clark@linaro.org> Cc: Thomas Falcon <thomas.falcon@intel.com> Signed-off-by: Namhyung Kim <namhyung@kernel.org>
22 lines
493 B
C
22 lines
493 B
C
// SPDX-License-Identifier: GPL-2.0
|
|
#include <stdlib.h>
|
|
#include <linux/kernel.h>
|
|
#include "hist.h"
|
|
#include "c2c.h"
|
|
|
|
void c2c_fmt_free(struct perf_hpp_fmt *fmt)
|
|
{
|
|
struct c2c_fmt *c2c_fmt;
|
|
|
|
c2c_fmt = container_of(fmt, struct c2c_fmt, fmt);
|
|
free(c2c_fmt);
|
|
}
|
|
|
|
bool c2c_fmt_equal(struct perf_hpp_fmt *a, struct perf_hpp_fmt *b)
|
|
{
|
|
struct c2c_fmt *c2c_a = container_of(a, struct c2c_fmt, fmt);
|
|
struct c2c_fmt *c2c_b = container_of(b, struct c2c_fmt, fmt);
|
|
|
|
return c2c_a->dim == c2c_b->dim;
|
|
}
|