aboutsummaryrefslogtreecommitdiff
path: root/bfd/elf-bfd.h
diff options
context:
space:
mode:
authorAndrew Burgess <andrew.burgess@embecosm.com>2020-11-27 14:04:16 +0000
committerAndrew Burgess <andrew.burgess@embecosm.com>2021-03-05 17:21:41 +0000
commitdb6092f3aec43ea4d10efc5ff74274f04cdc0ad6 (patch)
treef50ff118e61587a56f804b39683c114886f0b11a /bfd/elf-bfd.h
parentfb8f3fc0c3c4d04856547fddb86d7c9dabef681b (diff)
downloadgdb-db6092f3aec43ea4d10efc5ff74274f04cdc0ad6.zip
gdb-db6092f3aec43ea4d10efc5ff74274f04cdc0ad6.tar.gz
gdb-db6092f3aec43ea4d10efc5ff74274f04cdc0ad6.tar.bz2
bfd/binutils: add support for RISC-V CSRs in core files
Adds support for including RISC-V control and status registers into core files. The value for the define NT_RISCV_CSR is set to 0x900, this corresponds to a patch I have proposed for the Linux kernel here: http://lists.infradead.org/pipermail/linux-riscv/2020-December/003910.html As I have not yet heard if the above patch will be accepted into the kernel or not I have set the note name string to "GDB", and the note type to NT_RISCV_CSR. This means that if the above patch is rejected from the kernel, and the note type number 0x900 is assigned to some other note type, we will still be able to distinguish between the GDB produced NT_RISCV_CSR, and the kernel produced notes, where the name would be set to "CORE". bfd/ChangeLog: * elf-bfd.h (elfcore_write_riscv_csr): Declare. * elf.c (elfcore_grok_riscv_csr): New function. (elfcore_grok_note): Handle NT_RISCV_CSR. (elfcore_write_riscv_csr): New function. (elfcore_write_register_note): Handle '.reg-riscv-csr'. binutils/ChangeLog: * readelf.c (get_note_type): Handle NT_RISCV_CSR. include/ChangeLog: * elf/common.h (NT_RISCV_CSR): Define.
Diffstat (limited to 'bfd/elf-bfd.h')
-rw-r--r--bfd/elf-bfd.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h
index 69e1803..c40030b 100644
--- a/bfd/elf-bfd.h
+++ b/bfd/elf-bfd.h
@@ -2798,6 +2798,8 @@ extern char *elfcore_write_aarch_pauth
(bfd *, char *, int *, const void *, int);
extern char *elfcore_write_arc_v2
(bfd *, char *, int *, const void *, int);
+extern char *elfcore_write_riscv_csr
+ (bfd *, char *, int *, const void *, int);
extern char *elfcore_write_gdb_tdesc
(bfd *, char *, int *, const void *, int);
extern char *elfcore_write_lwpstatus