summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Wielaard <[email protected]>2016-02-12 18:04:30 +0100
committerMark Wielaard <[email protected]>2016-02-15 23:51:31 +0100
commit1899704b8731277bab9b932140a1e90cb75d4854 (patch)
treeed812a49eca64724bdf033ff6f3d9964a7fa2197
parent6e723c787212aae2589ad3c000bd38dd21b12095 (diff)
Add NT_ARM_SYSTEM_CALL aarch64 syscall regset.
Linux kernel 3.18 added the NT_ARM_SYSTEM_CALL regset for aarch64. Recognize and print this new core item. https://bugzilla.redhat.com/show_bug.cgi?id=1285613 Signed-off-by: Mark Wielaard <[email protected]>
-rw-r--r--backends/ChangeLog7
-rw-r--r--backends/aarch64_corenote.c11
-rw-r--r--libebl/eblcorenotetypename.c1
-rw-r--r--libelf/ChangeLog4
-rw-r--r--libelf/elf.h1
5 files changed, 23 insertions, 1 deletions
diff --git a/backends/ChangeLog b/backends/ChangeLog
index 4b604fd2..302646f1 100644
--- a/backends/ChangeLog
+++ b/backends/ChangeLog
@@ -1,3 +1,10 @@
+2016-02-12 Mark Wielaard <[email protected]>
+
+ * aarch64_corenote.c (aarch64_syscall_items): New Ebl_Core_Item[].
+ (EXTRA_NOTES): Add NT_ARM_SYSTEM_CALL.
+ * eblcorenotetypename.c (ebl_core_note_type_name):
+ Add ARM_SYSTEM_CALL.
+
2015-12-08 Jose E. Marchesi <[email protected]>
* sparc_init.c (sparc_init): Hook sparc_set_initial_registers_tid.
diff --git a/backends/aarch64_corenote.c b/backends/aarch64_corenote.c
index 9b424859..905a4b8a 100644
--- a/backends/aarch64_corenote.c
+++ b/backends/aarch64_corenote.c
@@ -99,6 +99,14 @@ static const Ebl_Core_Item aarch64_tls_items[] =
}
};
+static const Ebl_Core_Item aarch64_syscall_items [] =
+ {
+ {
+ .name = "syscall", .type = ELF_T_WORD, .format = 'x',
+ .offset = 0, .group = "register"
+ }
+ };
+
#define AARCH64_HWBP_REG(KIND, N) \
{ \
.name = "DBG" KIND "VR" #N "_EL1", .type = ELF_T_XWORD, .format = 'x', \
@@ -158,6 +166,7 @@ AARCH64_BP_WP_GROUP ("W", aarch64_hw_wp_items);
aarch64_fpregset_regs, aarch64_fpregset_items) \
EXTRA_ITEMS (NT_ARM_TLS, 8, aarch64_tls_items) \
EXTRA_ITEMS (NT_ARM_HW_BREAK, 264, aarch64_hw_bp_items) \
- EXTRA_ITEMS (NT_ARM_HW_WATCH, 264, aarch64_hw_wp_items)
+ EXTRA_ITEMS (NT_ARM_HW_WATCH, 264, aarch64_hw_wp_items) \
+ EXTRA_ITEMS (NT_ARM_SYSTEM_CALL, 4, aarch64_syscall_items)
#include "linux-core-note.c"
diff --git a/libebl/eblcorenotetypename.c b/libebl/eblcorenotetypename.c
index 826f9a1b..fa81dbec 100644
--- a/libebl/eblcorenotetypename.c
+++ b/libebl/eblcorenotetypename.c
@@ -90,6 +90,7 @@ ebl_core_note_type_name (Ebl *ebl, uint32_t type, char *buf, size_t len)
KNOWNSTYPE (ARM_TLS);
KNOWNSTYPE (ARM_HW_BREAK);
KNOWNSTYPE (ARM_HW_WATCH);
+ KNOWNSTYPE (ARM_SYSTEM_CALL);
KNOWNSTYPE (SIGINFO);
KNOWNSTYPE (FILE);
#undef KNOWNSTYPE
diff --git a/libelf/ChangeLog b/libelf/ChangeLog
index ec56b534..10e227e7 100644
--- a/libelf/ChangeLog
+++ b/libelf/ChangeLog
@@ -1,3 +1,7 @@
+2016-02-12 Mark Wielaard <[email protected]>
+
+ * elf.h: Update from glibc. Add NT_ARM_SYSTEM_CALL.
+
2016-02-04 Mark Wielaard <[email protected]>
* elf_getdata.c (__libelf_set_rawdata_wrlock): Don't adjust align
diff --git a/libelf/elf.h b/libelf/elf.h
index 12feb915..0240c3cf 100644
--- a/libelf/elf.h
+++ b/libelf/elf.h
@@ -667,6 +667,7 @@ typedef struct
#define NT_ARM_TLS 0x401 /* ARM TLS register */
#define NT_ARM_HW_BREAK 0x402 /* ARM hardware breakpoint registers */
#define NT_ARM_HW_WATCH 0x403 /* ARM hardware watchpoint registers */
+#define NT_ARM_SYSTEM_CALL 0x404 /* ARM system call number */
/* Legal values for the note segment descriptor types for object files. */