summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorPeter Crosthwaite <crosthwaitepeter@gmail.com>2016-03-04 11:30:21 +0000
committerTimothy Pearson <tpearson@raptorengineering.com>2019-11-29 19:49:12 -0600
commitb4d8a6170705a82cf4ed6a2bccd50fc1ae849d94 (patch)
tree28d3823e73984fb489889e34bd89a21fd75ad0fb /include
parentb94b92980f76ec7cbf93b69b26c6865a19b5b3c5 (diff)
downloadhqemu-b4d8a6170705a82cf4ed6a2bccd50fc1ae849d94.zip
hqemu-b4d8a6170705a82cf4ed6a2bccd50fc1ae849d94.tar.gz
loader: add API to load elf header
Add an API to load an elf header header from a file. Populates a buffer with the header contents, as well as a boolean for whether the elf is 64b or not. Both arguments are optional. Signed-off-by: Peter Crosthwaite <crosthwaite.peter@gmail.com> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> [PMM: Fix typo in comment] Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'include')
-rw-r--r--include/hw/loader.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/include/hw/loader.h b/include/hw/loader.h
index 09c3764..358da55 100644
--- a/include/hw/loader.h
+++ b/include/hw/loader.h
@@ -48,6 +48,19 @@ int load_elf(const char *filename, uint64_t (*translate_fn)(void *, uint64_t),
void *translate_opaque, uint64_t *pentry, uint64_t *lowaddr,
uint64_t *highaddr, int big_endian, int elf_machine,
int clear_lsb);
+
+/** load_elf_hdr:
+ * @filename: Path of ELF file
+ * @hdr: Buffer to populate with header data. Header data will not be
+ * filled if set to NULL.
+ * @is64: Set to true if the ELF is 64bit. Ignored if set to NULL
+ * @errp: Populated with an error in failure cases
+ *
+ * Inspect an ELF file's header. Read its full header contents into a
+ * buffer and/or determine if the ELF is 64bit.
+ */
+void load_elf_hdr(const char *filename, void *hdr, bool *is64, Error **errp);
+
int load_aout(const char *filename, hwaddr addr, int max_sz,
int bswap_needed, hwaddr target_page_size);
int load_uimage(const char *filename, hwaddr *ep,
OpenPOWER on IntegriCloud