Merge branch 'opp/linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/pm
[linux-2.6-microblaze.git] / tools / objtool / cfi.h
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /*
3  * Copyright (C) 2015-2017 Josh Poimboeuf <jpoimboe@redhat.com>
4  */
5
6 #ifndef _OBJTOOL_CFI_H
7 #define _OBJTOOL_CFI_H
8
9 #include "cfi_regs.h"
10
11 #define CFI_UNDEFINED           -1
12 #define CFI_CFA                 -2
13 #define CFI_SP_INDIRECT         -3
14 #define CFI_BP_INDIRECT         -4
15
16 struct cfi_reg {
17         int base;
18         int offset;
19 };
20
21 struct cfi_init_state {
22         struct cfi_reg regs[CFI_NUM_REGS];
23         struct cfi_reg cfa;
24 };
25
26 struct cfi_state {
27         struct cfi_reg regs[CFI_NUM_REGS];
28         struct cfi_reg vals[CFI_NUM_REGS];
29         struct cfi_reg cfa;
30         int stack_size;
31         int drap_reg, drap_offset;
32         unsigned char type;
33         bool bp_scratch;
34         bool drap;
35         bool end;
36 };
37
38 #endif /* _OBJTOOL_CFI_H */