[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v9 1/8] loader: Allow ELF loader to auto-detect
From: |
Peter Maydell |
Subject: |
Re: [Qemu-devel] [PATCH v9 1/8] loader: Allow ELF loader to auto-detect the ELF arch |
Date: |
Fri, 29 Jul 2016 16:42:47 +0100 |
On 14 July 2016 at 01:03, Alistair Francis <address@hidden> wrote:
> 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>
> ---
> V9:
> - Update documentation
> V8:
> - Move into load_elf64/load_elf32
> V7:
> - Fix typo
>
> include/hw/elf_ops.h | 5 +++++
> include/hw/loader.h | 3 +++
> 2 files changed, 8 insertions(+)
>
> diff --git a/include/hw/elf_ops.h b/include/hw/elf_ops.h
> index f510e7e..db70c11 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 < 1) {
> + /* 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..fd540fc 100644
> --- a/include/hw/loader.h
> +++ b/include/hw/loader.h
> @@ -68,6 +68,9 @@ 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 no @elf_machine is provided the machine will default to the value
> + * in the ELFs header and no checks will be carried out against the
> + * machine type.
> */
The argument is mandatory, you can't not provide it.
Should we make this "if @elf_machine is EM_NONE then the
machine type will be read from the ELF header" ? (EM_NONE is 0).
thanks
-- PMM
- [Qemu-devel] [PATCH v9 0/8] Add a generic loader, Alistair Francis, 2016/07/13
- [Qemu-devel] [PATCH v9 1/8] loader: Allow ELF loader to auto-detect the ELF arch, Alistair Francis, 2016/07/13
- Re: [Qemu-devel] [PATCH v9 1/8] loader: Allow ELF loader to auto-detect the ELF arch,
Peter Maydell <=
- [Qemu-devel] [PATCH v9 2/8] loader: Use the specified MemoryRegion, Alistair Francis, 2016/07/13
- [Qemu-devel] [PATCH v9 3/8] loader: Allow a custom AddressSpace when loading ROMs, Alistair Francis, 2016/07/13
- [Qemu-devel] [PATCH v9 4/8] loader: Add AddressSpace loading support to ELFs, Alistair Francis, 2016/07/13
- [Qemu-devel] [PATCH v9 5/8] loader: Add AddressSpace loading support to uImages, Alistair Francis, 2016/07/13
- [Qemu-devel] [PATCH v9 6/8] loader: Add AddressSpace loading support to targphys, Alistair Francis, 2016/07/13