root/arch/arm/include/asm/unwind.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0-only */
   2 /*
   3  * arch/arm/include/asm/unwind.h
   4  *
   5  * Copyright (C) 2008 ARM Limited
   6  */
   7 
   8 #ifndef __ASM_UNWIND_H
   9 #define __ASM_UNWIND_H
  10 
  11 #ifndef __ASSEMBLY__
  12 
  13 /* Unwind reason code according the the ARM EABI documents */
  14 enum unwind_reason_code {
  15         URC_OK = 0,                     /* operation completed successfully */
  16         URC_CONTINUE_UNWIND = 8,
  17         URC_FAILURE = 9                 /* unspecified failure of some kind */
  18 };
  19 
  20 struct unwind_idx {
  21         unsigned long addr_offset;
  22         unsigned long insn;
  23 };
  24 
  25 struct unwind_table {
  26         struct list_head list;
  27         const struct unwind_idx *start;
  28         const struct unwind_idx *origin;
  29         const struct unwind_idx *stop;
  30         unsigned long begin_addr;
  31         unsigned long end_addr;
  32 };
  33 
  34 extern struct unwind_table *unwind_table_add(unsigned long start,
  35                                              unsigned long size,
  36                                              unsigned long text_addr,
  37                                              unsigned long text_size);
  38 extern void unwind_table_del(struct unwind_table *tab);
  39 extern void unwind_backtrace(struct pt_regs *regs, struct task_struct *tsk);
  40 
  41 #endif  /* !__ASSEMBLY__ */
  42 
  43 #ifdef CONFIG_ARM_UNWIND
  44 #define UNWIND(code...)         code
  45 #else
  46 #define UNWIND(code...)
  47 #endif
  48 
  49 #endif  /* __ASM_UNWIND_H */

/* [<][>][^][v][top][bottom][index][help] */