summaryrefslogtreecommitdiff
path: root/drivers/misc/tegra-profiler/eh_unwind.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/misc/tegra-profiler/eh_unwind.h')
-rw-r--r--drivers/misc/tegra-profiler/eh_unwind.h27
1 files changed, 13 insertions, 14 deletions
diff --git a/drivers/misc/tegra-profiler/eh_unwind.h b/drivers/misc/tegra-profiler/eh_unwind.h
index 77fdfc92aba9..7ce0f828b9e5 100644
--- a/drivers/misc/tegra-profiler/eh_unwind.h
+++ b/drivers/misc/tegra-profiler/eh_unwind.h
@@ -17,6 +17,8 @@
#ifndef __QUADD_EH_UNWIND_H__
#define __QUADD_EH_UNWIND_H__
+#include <linux/tegra_profiler.h>
+
struct pt_regs;
struct quadd_callchain;
struct quadd_ctx;
@@ -25,9 +27,9 @@ struct task_struct;
struct quadd_mmap_area;
unsigned int
-quadd_aarch32_get_user_callchain_ut(struct pt_regs *regs,
- struct quadd_callchain *cc,
- struct task_struct *task);
+quadd_get_user_cc_arm32_ehabi(struct pt_regs *regs,
+ struct quadd_callchain *cc,
+ struct task_struct *task);
int quadd_unwind_init(void);
void quadd_unwind_deinit(void);
@@ -35,20 +37,21 @@ void quadd_unwind_deinit(void);
int quadd_unwind_start(struct task_struct *task);
void quadd_unwind_stop(void);
-int quadd_unwind_set_extab(struct quadd_extables *extabs,
+int quadd_unwind_set_extab(struct quadd_sections *extabs,
struct quadd_mmap_area *mmap);
void quadd_unwind_delete_mmap(struct quadd_mmap_area *mmap);
int
-quadd_aarch32_is_ex_entry_exist(struct pt_regs *regs,
- unsigned long addr,
- struct task_struct *task);
+quadd_is_ex_entry_exist_arm32_ehabi(struct pt_regs *regs,
+ unsigned long addr,
+ struct task_struct *task);
void
quadd_unwind_set_tail_info(unsigned long vm_start,
unsigned long tf_start,
unsigned long tf_end);
+
struct extab_info {
unsigned long addr;
unsigned long length;
@@ -56,16 +59,11 @@ struct extab_info {
unsigned long mmap_offset;
};
-struct extables {
- struct extab_info extab;
- struct extab_info exidx;
-};
-
struct ex_region_info {
unsigned long vm_start;
unsigned long vm_end;
- struct extables tabs;
+ struct extab_info ex_sec[QUADD_SEC_TYPE_MAX];
struct quadd_mmap_area *mmap;
struct list_head list;
@@ -74,6 +72,7 @@ struct ex_region_info {
unsigned long tf_end;
};
-long quadd_search_ex_region(unsigned long key, struct ex_region_info *ri);
+long
+quadd_get_extabs_ehframe(unsigned long key, struct ex_region_info *ri);
#endif /* __QUADD_EH_UNWIND_H__ */