diff options
| author | Peter Crosthwaite <crosthwaitepeter@gmail.com> | 2016-03-04 11:30:21 +0000 |
|---|---|---|
| committer | Peter Maydell <peter.maydell@linaro.org> | 2016-03-04 11:30:21 +0000 |
| commit | 04ae712a9f31fe21eacfcaeb689c7e6d0a7e251c (patch) | |
| tree | cef357793fb382ff6efb6ff9a69b0e087ec7da75 /include/hw/loader.h | |
| parent | e334bd3190f6c4ca12f1d40d316dc471c70009ab (diff) | |
| download | focaccia-qemu-04ae712a9f31fe21eacfcaeb689c7e6d0a7e251c.tar.gz focaccia-qemu-04ae712a9f31fe21eacfcaeb689c7e6d0a7e251c.zip | |
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/hw/loader.h')
| -rw-r--r-- | include/hw/loader.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/include/hw/loader.h b/include/hw/loader.h index 09c3764875..358da55eb6 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, |