diff options
author | Igor Nabirushkin <inabirushkin@nvidia.com> | 2015-02-13 21:35:02 +0400 |
---|---|---|
committer | Winnie Hsu <whsu@nvidia.com> | 2015-05-29 14:24:25 -0700 |
commit | cce82cdcece7b05d6245a46d2033bdb4a8c710f2 (patch) | |
tree | 4e334ade7e6e50c57320c9f451367e1becb6493e /include | |
parent | 1744c354ffda85c1839f0ac926c9ab1b926818db (diff) |
misc: tegra-profiler: support eh_frame sections
Support dwarf unwinding for arm32 files (based on
eh_frame sections).
Bug 1611069
Change-Id: Ie057ebcfcff75ccb2d3e62aa7cb85ac4b090930c
Signed-off-by: Igor Nabirushkin <inabirushkin@nvidia.com>
Reviewed-on: http://git-master/r/707903
(cherry picked from commit 950855f44e647b22508f2d31fe373fffd9e0642f)
Reviewed-on: http://git-master/r/747745
GVS: Gerrit_Virtual_Submit
Reviewed-by: Andrey Trachenko <atrachenko@nvidia.com>
Reviewed-by: Winnie Hsu <whsu@nvidia.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/tegra_profiler.h | 39 |
1 files changed, 28 insertions, 11 deletions
diff --git a/include/linux/tegra_profiler.h b/include/linux/tegra_profiler.h index 4225e7e9274e..1aa39a4ad4b4 100644 --- a/include/linux/tegra_profiler.h +++ b/include/linux/tegra_profiler.h @@ -20,7 +20,7 @@ #include <linux/ioctl.h> #define QUADD_SAMPLES_VERSION 31 -#define QUADD_IO_VERSION 16 +#define QUADD_IO_VERSION 17 #define QUADD_IO_VERSION_DYNAMIC_RB 5 #define QUADD_IO_VERSION_RB_MAX_FILL_COUNT 6 @@ -34,6 +34,7 @@ #define QUADD_IO_VERSION_DATA_MMAP 14 #define QUADD_IO_VERSION_BT_LOWER_BOUND 15 #define QUADD_IO_VERSION_STACK_OFFSET 16 +#define QUADD_IO_VERSION_SECTIONS_INFO 17 #define QUADD_SAMPLE_VERSION_THUMB_MODE_FLAG 17 #define QUADD_SAMPLE_VERSION_GROUP_SAMPLES 18 @@ -94,14 +95,20 @@ /* * Send exception-handling tables info + * This ioctl is obsolete */ -#define IOCTL_SET_EXTAB _IOW(QUADD_IOCTL, 6, struct quadd_extables) +/*#define IOCTL_SET_EXTAB _IOW(QUADD_IOCTL, 6, struct quadd_extables)*/ /* * Send ring buffer mmap info */ #define IOCTL_SET_MMAP_RB _IOW(QUADD_IOCTL, 7, struct quadd_mmap_rb_info) +/* + * Send sections info + */ +#define IOCTL_SET_SECTIONS_INFO _IOW(QUADD_IOCTL, 8, struct quadd_sections) + #define QUADD_CPUMODE_TEGRA_POWER_CLUSTER_LP (1 << 29) /* LP CPU */ #define QUADD_CPUMODE_THUMB (1 << 30) /* thumb mode */ @@ -455,25 +462,35 @@ struct quadd_module_version { u32 reserved[4]; /* reserved fields for future extensions */ }; +enum { + QUADD_SEC_TYPE_EXTAB = 0, + QUADD_SEC_TYPE_EXIDX, + + QUADD_SEC_TYPE_EH_FRAME, + QUADD_SEC_TYPE_EH_FRAME_HDR, + + QUADD_SEC_TYPE_DEBUG_FRAME, + QUADD_SEC_TYPE_DEBUG_FRAME_HDR, + + QUADD_SEC_TYPE_MAX, +}; + struct quadd_sec_info { u64 addr; u64 length; -}; -enum { - QUADD_EXT_IDX_EXTAB_OFFSET = 0, - QUADD_EXT_IDX_EXIDX_OFFSET = 1, - QUADD_EXT_IDX_MMAP_VM_START = 2, + u64 mmap_offset; }; -struct quadd_extables { +struct quadd_sections { u64 vm_start; u64 vm_end; - struct quadd_sec_info extab; - struct quadd_sec_info exidx; + struct quadd_sec_info sec[QUADD_SEC_TYPE_MAX]; - u32 reserved[4]; /* reserved fields for future extensions */ + u64 user_mmap_start; + + u64 reserved[4]; /* reserved fields for future extensions */ }; struct quadd_mmap_rb_info { |