aboutsummaryrefslogtreecommitdiff
path: root/bfd/bfd-in.h
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2003-05-21 00:56:05 +0000
committerRoland McGrath <roland@gnu.org>2003-05-21 00:56:05 +0000
commit8d6337feeb730bf1966ec96e9bef957b43fca744 (patch)
treed76427f73e20dba080ddc3292871477fd2580f34 /bfd/bfd-in.h
parent3333a7c3394cdd592086c2358d52d3e4ae16b9f1 (diff)
downloadgdb-8d6337feeb730bf1966ec96e9bef957b43fca744.zip
gdb-8d6337feeb730bf1966ec96e9bef957b43fca744.tar.gz
gdb-8d6337feeb730bf1966ec96e9bef957b43fca744.tar.bz2
2003-05-19 Roland McGrath <roland@redhat.com>
* elf.c (bfd_elf_bfd_from_remote_memory): New function. * bfd-in.h: Declare it. * elfcode.h (NAME(_bfd_elf,bfd_from_remote_memory)): New function. * elf-bfd.h (struct elf_backend_data): New function pointer member elf_backend_bfd_from_remote_memory. (_bfd_elf32_bfd_from_remote_memory, _bfd_elf64_bfd_from_remote_memory): Declare them. * elfxx-target.h (elf_backend_bfd_from_remote_memory): New macro. (elfNN_bed): Add that to the initializer.
Diffstat (limited to 'bfd/bfd-in.h')
-rw-r--r--bfd/bfd-in.h17
1 files changed, 16 insertions, 1 deletions
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index 93fd0fd..703f328 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -694,6 +694,22 @@ extern long bfd_get_elf_phdr_upper_bound
extern int bfd_get_elf_phdrs
PARAMS ((bfd *abfd, void *phdrs));
+/* Create a new BFD as if by bfd_openr. Rather than opening a file,
+ reconstruct an ELF file by reading the segments out of remote memory
+ based on the ELF file header at EHDR_VMA and the ELF program headers it
+ points to. If not null, *LOADBASEP is filled in with the difference
+ between the VMAs from which the segments were read, and the VMAs the
+ file headers (and hence BFD's idea of each section's VMA) put them at.
+
+ The function TARGET_READ_MEMORY is called to copy LEN bytes from the
+ remote memory at target address VMA into the local buffer at MYADDR; it
+ should return zero on success or an `errno' code on failure. TEMPL must
+ be a BFD for an ELF target with the word size and byte order found in
+ the remote memory. */
+extern bfd *bfd_elf_bfd_from_remote_memory
+ PARAMS ((bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep,
+ int (*target_read_memory) (bfd_vma vma, char *myaddr, int len)));
+
/* Return the arch_size field of an elf bfd, or -1 if not elf. */
extern int bfd_get_arch_size
PARAMS ((bfd *));
@@ -849,4 +865,3 @@ extern void bfd_ticoff_set_section_load_page
extern int bfd_ticoff_get_section_load_page
PARAMS ((struct sec *));
-