summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorIgor Nabirushkin <inabirushkin@nvidia.com>2015-02-13 21:35:02 +0400
committerWinnie Hsu <whsu@nvidia.com>2015-05-29 14:24:25 -0700
commitcce82cdcece7b05d6245a46d2033bdb4a8c710f2 (patch)
tree4e334ade7e6e50c57320c9f451367e1becb6493e /include
parent1744c354ffda85c1839f0ac926c9ab1b926818db (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.h39
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 {