xref: /linux/tools/objtool/include/objtool/builtin.h (revision 67f8bc848ee31831336bd478e57d2f993551902e)
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /*
3  * Copyright (C) 2015 Josh Poimboeuf <jpoimboe@redhat.com>
4  */
5 #ifndef _BUILTIN_H
6 #define _BUILTIN_H
7 
8 #include <subcmd/parse-options.h>
9 
10 struct opts {
11 	/* actions: */
12 	bool checksum;
13 	const char *disas;
14 	bool dump_orc;
15 	bool hack_jump_label;
16 	bool hack_noinstr;
17 	bool hack_skylake;
18 	bool ibt;
19 	bool klp_symids;
20 	bool mcount;
21 	bool noabs;
22 	bool noinstr;
23 	bool orc;
24 	int prefix;
25 	bool retpoline;
26 	bool rethunk;
27 	bool unret;
28 	bool sls;
29 	bool stackval;
30 	bool static_call;
31 	bool uaccess;
32 
33 	/* options: */
34 	bool backtrace;
35 	bool backup;
36 	bool cfi;
37 	const char *debug_checksum;
38 	bool dryrun;
39 	bool fineibt;
40 	bool link;
41 	bool mnop;
42 	bool module;
43 	bool no_unreachable;
44 	const char *output;
45 	bool sec_address;
46 	bool stats;
47 	const char *trace;
48 	bool verbose;
49 	bool werror;
50 	bool wide;
51 };
52 
53 extern struct opts opts;
54 
55 int cmd_parse_options(int argc, const char **argv, const char * const usage[]);
56 
57 int objtool_run(int argc, const char **argv);
58 
59 int make_backup(void);
60 
61 int cmd_klp(int argc, const char **argv);
62 
63 #endif /* _BUILTIN_H */
64