Commit ff382c1c authored by Leo Yan's avatar Leo Yan Committed by Arnaldo Carvalho de Melo

perf parse-regs: Move out arch specific header from util/perf_regs.h

util/perf_regs.h includes another perf_regs.h:

  #include <perf_regs.h>

Here it includes architecture specific header, for example, if we build
arm64 target, the header tools/perf/arch/arm64/include/perf_regs.h is
included.

We use this implicit way to include architecture specific header, which
is not directive; furthermore, util/perf_regs.c is coupled with the
architecture specific definitions.

This patch moves out arch specific header from util/perf_regs.h for
generalizing the 'util' folder, as a result, the source files in 'arch'
folder explicitly include architecture's perf_regs.h.
Signed-off-by: default avatarLeo Yan <leo.yan@linaro.org>
Acked-by: default avatarIan Rogers <irogers@google.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Albert Ou <aou@eecs.berkeley.edu>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Eric Lin <eric.lin@sifive.com>
Cc: Fangrui Song <maskray@google.com>
Cc: Guo Ren <guoren@kernel.org>
Cc: Huacai Chen <chenhuacai@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Ivan Babrou <ivan@cloudflare.com>
Cc: James Clark <james.clark@arm.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: John Garry <john.g.garry@oracle.com>
Cc: Kan Liang <kan.liang@linux.intel.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Mike Leach <mike.leach@linaro.org>
Cc: Ming Wang <wangming01@loongson.cn>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Palmer Dabbelt <palmer@dabbelt.com>
Cc: Paul Walmsley <paul.walmsley@sifive.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Sandipan Das <sandipan.das@amd.com>
Cc: Will Deacon <will@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-csky@vger.kernel.org
Cc: linux-riscv@lists.infradead.org
Link: https://lore.kernel.org/r/20230606014559.21783-7-leo.yan@linaro.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 856caabf
// SPDX-License-Identifier: GPL-2.0 // SPDX-License-Identifier: GPL-2.0
#include "perf_regs.h"
#include "../../../util/perf_regs.h" #include "../../../util/perf_regs.h"
const struct sample_reg sample_reg_masks[] = { const struct sample_reg sample_reg_masks[] = {
......
// SPDX-License-Identifier: GPL-2.0 // SPDX-License-Identifier: GPL-2.0
#include <elfutils/libdwfl.h> #include <elfutils/libdwfl.h>
#include "perf_regs.h"
#include "../../../util/unwind-libdw.h" #include "../../../util/unwind-libdw.h"
#include "../../../util/perf_regs.h" #include "../../../util/perf_regs.h"
#include "../../../util/sample.h" #include "../../../util/sample.h"
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
#include "debug.h" #include "debug.h"
#include "symbol.h" #include "symbol.h"
#include "callchain.h" #include "callchain.h"
#include "perf_regs.h"
#include "record.h" #include "record.h"
#include "util/perf_regs.h" #include "util/perf_regs.h"
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/zalloc.h> #include <linux/zalloc.h>
#include "perf_regs.h"
#include "../../../perf-sys.h" #include "../../../perf-sys.h"
#include "../../../util/debug.h" #include "../../../util/debug.h"
#include "../../../util/event.h" #include "../../../util/event.h"
......
// SPDX-License-Identifier: GPL-2.0 // SPDX-License-Identifier: GPL-2.0
#include <elfutils/libdwfl.h> #include <elfutils/libdwfl.h>
#include "perf_regs.h"
#include "../../../util/unwind-libdw.h" #include "../../../util/unwind-libdw.h"
#include "../../../util/perf_regs.h" #include "../../../util/perf_regs.h"
#include "../../../util/sample.h" #include "../../../util/sample.h"
......
// SPDX-License-Identifier: GPL-2.0 // SPDX-License-Identifier: GPL-2.0
#include "perf_regs.h"
#include "../../util/perf_regs.h" #include "../../util/perf_regs.h"
const struct sample_reg sample_reg_masks[] = { const struct sample_reg sample_reg_masks[] = {
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
// Copyright (C) 2019 Hangzhou C-SKY Microsystems co.,ltd. // Copyright (C) 2019 Hangzhou C-SKY Microsystems co.,ltd.
#include <elfutils/libdwfl.h> #include <elfutils/libdwfl.h>
#include "perf_regs.h"
#include "../../util/unwind-libdw.h" #include "../../util/unwind-libdw.h"
#include "../../util/perf_regs.h" #include "../../util/perf_regs.h"
#include "../../util/event.h" #include "../../util/event.h"
......
// SPDX-License-Identifier: GPL-2.0 // SPDX-License-Identifier: GPL-2.0
#include "perf_regs.h"
#include "../../../util/perf_regs.h" #include "../../../util/perf_regs.h"
const struct sample_reg sample_reg_masks[] = { const struct sample_reg sample_reg_masks[] = {
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
/* Copyright (C) 2020-2023 Loongson Technology Corporation Limited */ /* Copyright (C) 2020-2023 Loongson Technology Corporation Limited */
#include <elfutils/libdwfl.h> #include <elfutils/libdwfl.h>
#include "perf_regs.h"
#include "../../util/unwind-libdw.h" #include "../../util/unwind-libdw.h"
#include "../../util/perf_regs.h" #include "../../util/perf_regs.h"
#include "../../util/sample.h" #include "../../util/sample.h"
......
// SPDX-License-Identifier: GPL-2.0 // SPDX-License-Identifier: GPL-2.0
#include "perf_regs.h"
#include "../../util/perf_regs.h" #include "../../util/perf_regs.h"
const struct sample_reg sample_reg_masks[] = { const struct sample_reg sample_reg_masks[] = {
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
#include <regex.h> #include <regex.h>
#include <linux/zalloc.h> #include <linux/zalloc.h>
#include "perf_regs.h"
#include "../../../util/perf_regs.h" #include "../../../util/perf_regs.h"
#include "../../../util/debug.h" #include "../../../util/debug.h"
#include "../../../util/event.h" #include "../../../util/event.h"
......
// SPDX-License-Identifier: GPL-2.0 // SPDX-License-Identifier: GPL-2.0
#include <elfutils/libdwfl.h> #include <elfutils/libdwfl.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include "perf_regs.h"
#include "../../../util/unwind-libdw.h" #include "../../../util/unwind-libdw.h"
#include "../../../util/perf_regs.h" #include "../../../util/perf_regs.h"
#include "../../../util/sample.h" #include "../../../util/sample.h"
......
// SPDX-License-Identifier: GPL-2.0 // SPDX-License-Identifier: GPL-2.0
#include "perf_regs.h"
#include "../../util/perf_regs.h" #include "../../util/perf_regs.h"
const struct sample_reg sample_reg_masks[] = { const struct sample_reg sample_reg_masks[] = {
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
/* Copyright (C) 2019 Hangzhou C-SKY Microsystems co.,ltd. */ /* Copyright (C) 2019 Hangzhou C-SKY Microsystems co.,ltd. */
#include <elfutils/libdwfl.h> #include <elfutils/libdwfl.h>
#include "perf_regs.h"
#include "../../util/unwind-libdw.h" #include "../../util/unwind-libdw.h"
#include "../../util/perf_regs.h" #include "../../util/perf_regs.h"
#include "../../util/sample.h" #include "../../util/sample.h"
......
// SPDX-License-Identifier: GPL-2.0 // SPDX-License-Identifier: GPL-2.0
#include "perf_regs.h"
#include "../../util/perf_regs.h" #include "../../util/perf_regs.h"
const struct sample_reg sample_reg_masks[] = { const struct sample_reg sample_reg_masks[] = {
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
#include "../../util/event.h" #include "../../util/event.h"
#include "../../util/sample.h" #include "../../util/sample.h"
#include "dwarf-regs-table.h" #include "dwarf-regs-table.h"
#include "perf_regs.h"
bool libdw__arch_set_initial_registers(Dwfl_Thread *thread, void *arg) bool libdw__arch_set_initial_registers(Dwfl_Thread *thread, void *arg)
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/zalloc.h> #include <linux/zalloc.h>
#include "perf_regs.h"
#include "../../../perf-sys.h" #include "../../../perf-sys.h"
#include "../../../util/perf_regs.h" #include "../../../util/perf_regs.h"
#include "../../../util/debug.h" #include "../../../util/debug.h"
......
// SPDX-License-Identifier: GPL-2.0 // SPDX-License-Identifier: GPL-2.0
#include <elfutils/libdwfl.h> #include <elfutils/libdwfl.h>
#include "perf_regs.h"
#include "../../../util/unwind-libdw.h" #include "../../../util/unwind-libdw.h"
#include "../../../util/perf_regs.h" #include "../../../util/perf_regs.h"
#include "util/sample.h" #include "util/sample.h"
......
...@@ -30,8 +30,6 @@ uint64_t arch__user_reg_mask(void); ...@@ -30,8 +30,6 @@ uint64_t arch__user_reg_mask(void);
#ifdef HAVE_PERF_REGS_SUPPORT #ifdef HAVE_PERF_REGS_SUPPORT
extern const struct sample_reg sample_reg_masks[]; extern const struct sample_reg sample_reg_masks[];
#include <perf_regs.h>
const char *perf_reg_name(int id, const char *arch); const char *perf_reg_name(int id, const char *arch);
int perf_reg_value(u64 *valp, struct regs_dump *regs, int id); int perf_reg_value(u64 *valp, struct regs_dump *regs, int id);
uint64_t perf_arch_reg_ip(const char *arch); uint64_t perf_arch_reg_ip(const char *arch);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment