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 11#define CFI_UNDEFINED -1 12#define CFI_CFA -2 13#define CFI_SP_INDIRECT -3 14#define CFI_BP_INDIRECT -4 15 16struct cfi_reg { 17 int base; 18 int offset; 19}; 20 21struct cfi_init_state { 22 struct cfi_reg regs[CFI_NUM_REGS]; 23 struct cfi_reg cfa; 24}; 25 26struct 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 */ 39