[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v11 1/8] loader: Allow ELF loader to auto-detect the
From: |
Alistair Francis |
Subject: |
[Qemu-devel] [PATCH v11 1/8] loader: Allow ELF loader to auto-detect the ELF arch |
Date: |
Tue, 20 Sep 2016 07:54:09 -0700 |
If the caller didn't specify an architecture for the ELF machine
the load_elf() function will auto detect it based on the ELF file.
Signed-off-by: Alistair Francis <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
---
V10:
- Base checks on the EM_NONE macro
V9:
- Update documentation
V8:
- Move into load_elf64/load_elf32
V7:
- Fix typo
include/hw/elf_ops.h | 5 +++++
include/hw/loader.h | 2 ++
2 files changed, 7 insertions(+)
diff --git a/include/hw/elf_ops.h b/include/hw/elf_ops.h
index f510e7e..5038c7f 100644
--- a/include/hw/elf_ops.h
+++ b/include/hw/elf_ops.h
@@ -280,6 +280,11 @@ static int glue(load_elf, SZ)(const char *name, int fd,
glue(bswap_ehdr, SZ)(&ehdr);
}
+ if (elf_machine <= EM_NONE) {
+ /* The caller didn't specify an ARCH, we can figure it out */
+ elf_machine = ehdr.e_machine;
+ }
+
switch (elf_machine) {
case EM_PPC64:
if (ehdr.e_machine != EM_PPC64) {
diff --git a/include/hw/loader.h b/include/hw/loader.h
index 4879b63..c59673d 100644
--- a/include/hw/loader.h
+++ b/include/hw/loader.h
@@ -68,6 +68,8 @@ const char *load_elf_strerror(int error);
* load will fail if the target ELF does not match. Some architectures
* have some architecture-specific behaviours that come into effect when
* their particular values for @elf_machine are set.
+ * If @elf_machine is EM_NONE then the machine type will be read from the
+ * ELF header and no checks will be carried out against the machine type.
*/
int load_elf(const char *filename, uint64_t (*translate_fn)(void *, uint64_t),
--
2.7.4
- [Qemu-devel] [PATCH v11 0/8] Add a generic loader, Alistair Francis, 2016/09/20
- [Qemu-devel] [PATCH v11 5/8] loader: Add AddressSpace loading support to uImages, Alistair Francis, 2016/09/20
- [Qemu-devel] [PATCH v11 4/8] loader: Add AddressSpace loading support to ELFs, Alistair Francis, 2016/09/20
- [Qemu-devel] [PATCH v11 7/8] generic-loader: Add a generic loader, Alistair Francis, 2016/09/20
- [Qemu-devel] [PATCH v11 1/8] loader: Allow ELF loader to auto-detect the ELF arch,
Alistair Francis <=
- [Qemu-devel] [PATCH v11 6/8] loader: Add AddressSpace loading support to targphys, Alistair Francis, 2016/09/20
- [Qemu-devel] [PATCH v11 2/8] loader: Use the specified MemoryRegion, Alistair Francis, 2016/09/20
- [Qemu-devel] [PATCH v11 3/8] loader: Allow a custom AddressSpace when loading ROMs, Alistair Francis, 2016/09/20
- [Qemu-devel] [PATCH v11 8/8] docs: Add a generic loader explanation document, Alistair Francis, 2016/09/20
- Re: [Qemu-devel] [PATCH v11 0/8] Add a generic loader, Peter Maydell, 2016/09/20
- Re: [Qemu-devel] [PATCH v11 0/8] Add a generic loader, Markus Armbruster, 2016/09/21