Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
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 <arch/cfi_regs.h>
10#include <linux/list.h>
11
12#define CFI_UNDEFINED -1
13#define CFI_CFA -2
14#define CFI_SP_INDIRECT -3
15#define CFI_BP_INDIRECT -4
16
17struct cfi_reg {
18 int base;
19 int offset;
20};
21
22struct cfi_init_state {
23 struct cfi_reg regs[CFI_NUM_REGS];
24 struct cfi_reg cfa;
25};
26
27struct cfi_state {
28 struct hlist_node hash; /* must be first, cficmp() */
29 struct cfi_reg regs[CFI_NUM_REGS];
30 struct cfi_reg vals[CFI_NUM_REGS];
31 struct cfi_reg cfa;
32 int stack_size;
33 int drap_reg, drap_offset;
34 unsigned char type;
35 bool bp_scratch;
36 bool drap;
37 bool signal;
38 bool end;
39 bool force_undefined;
40};
41
42#endif /* _OBJTOOL_CFI_H */