The objtool_file structure describes the files objtool works on,
is used by the check subcommand, and the check.h header is included
by the orc subcommands so it's presently used by all subcommands.
Since the structure will be useful in all subcommands besides check,
and some subcommands may not want to include check.h to get the
definition, split the structure out into a new header meant for use
by all objtool subcommands.
Signed-off-by: Matt Helsley <[email protected]>
---
tools/objtool/check.h | 10 +---------
tools/objtool/objtool.h | 20 ++++++++++++++++++++
2 files changed, 21 insertions(+), 9 deletions(-)
create mode 100644 tools/objtool/objtool.h
diff --git a/tools/objtool/check.h b/tools/objtool/check.h
index 24280227ef21..3b59a1cbcff5 100644
--- a/tools/objtool/check.h
+++ b/tools/objtool/check.h
@@ -7,11 +7,10 @@
#define _CHECK_H
#include <stdbool.h>
-#include "elf.h"
+#include "objtool.h"
#include "cfi.h"
#include "arch.h"
#include "orc.h"
-#include <linux/hashtable.h>
struct insn_state {
struct cfi_state cfi;
@@ -48,13 +47,6 @@ struct instruction {
struct orc_entry orc;
};
-struct objtool_file {
- struct elf *elf;
- struct list_head insn_list;
- DECLARE_HASHTABLE(insn_hash, 20);
- bool ignore_unreachables, c_file, hints, rodata;
-};
-
int check(const char *objname, bool orc);
struct instruction *find_insn(struct objtool_file *file,
diff --git a/tools/objtool/objtool.h b/tools/objtool/objtool.h
new file mode 100644
index 000000000000..afa52fe6f644
--- /dev/null
+++ b/tools/objtool/objtool.h
@@ -0,0 +1,20 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/*
+ * Copyright (C) 2020 Matt Helsley <[email protected]>
+ */
+
+#ifndef _OBJTOOL_H
+#define _OBJTOOL_H
+#include <stdbool.h>
+#include <linux/list.h>
+#include <linux/hashtable.h>
+
+#include "elf.h"
+
+struct objtool_file {
+ struct elf *elf;
+ struct list_head insn_list;
+ DECLARE_HASHTABLE(insn_hash, 20);
+ bool ignore_unreachables, c_file, hints, rodata;
+};
+#endif
--
2.20.1
On 5/19/20 9:55 PM, Matt Helsley wrote:
> The objtool_file structure describes the files objtool works on,
> is used by the check subcommand, and the check.h header is included
> by the orc subcommands so it's presently used by all subcommands.
>
> Since the structure will be useful in all subcommands besides check,
> and some subcommands may not want to include check.h to get the
> definition, split the structure out into a new header meant for use
> by all objtool subcommands.
>
> Signed-off-by: Matt Helsley <[email protected]>
Reviewed-by: Julien Thierry <[email protected]>
--
Julien Thierry
On 5/20/20 2:25 AM, Matt Helsley wrote:
> The objtool_file structure describes the files objtool works on,
> is used by the check subcommand, and the check.h header is included
> by the orc subcommands so it's presently used by all subcommands.
>
> Since the structure will be useful in all subcommands besides check,
> and some subcommands may not want to include check.h to get the
> definition, split the structure out into a new header meant for use
> by all objtool subcommands.
>
> Signed-off-by: Matt Helsley <[email protected]>
Reviewed-by: Kamalesh Babulal <[email protected]>
--
Kamalesh