mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.1 KiB
50 lines
1.1 KiB
/* SPDX-License-Identifier: GPL-2.0-only */ |
|
/* |
|
* arch/arm/include/asm/unwind.h |
|
* |
|
* Copyright (C) 2008 ARM Limited |
|
*/ |
|
|
|
#ifndef __ASM_UNWIND_H |
|
#define __ASM_UNWIND_H |
|
|
|
#ifndef __ASSEMBLY__ |
|
|
|
/* Unwind reason code according the the ARM EABI documents */ |
|
enum unwind_reason_code { |
|
URC_OK = 0, /* operation completed successfully */ |
|
URC_CONTINUE_UNWIND = 8, |
|
URC_FAILURE = 9 /* unspecified failure of some kind */ |
|
}; |
|
|
|
struct unwind_idx { |
|
unsigned long addr_offset; |
|
unsigned long insn; |
|
}; |
|
|
|
struct unwind_table { |
|
struct list_head list; |
|
const struct unwind_idx *start; |
|
const struct unwind_idx *origin; |
|
const struct unwind_idx *stop; |
|
unsigned long begin_addr; |
|
unsigned long end_addr; |
|
}; |
|
|
|
extern struct unwind_table *unwind_table_add(unsigned long start, |
|
unsigned long size, |
|
unsigned long text_addr, |
|
unsigned long text_size); |
|
extern void unwind_table_del(struct unwind_table *tab); |
|
extern void unwind_backtrace(struct pt_regs *regs, struct task_struct *tsk, |
|
const char *loglvl); |
|
|
|
#endif /* !__ASSEMBLY__ */ |
|
|
|
#ifdef CONFIG_ARM_UNWIND |
|
#define UNWIND(code...) code |
|
#else |
|
#define UNWIND(code...) |
|
#endif |
|
|
|
#endif /* __ASM_UNWIND_H */
|
|
|