qemu-ppc
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-ppc] [PATCH 4/4] spapr: add more details error description of


From: Alexander Graf
Subject: Re: [Qemu-ppc] [PATCH 4/4] spapr: add more details error description of why load_elf() failed
Date: Fri, 31 Jan 2014 08:20:56 +0100

On 22.01.2014, at 06:20, Alexey Kardashevskiy <address@hidden> wrote:

> This makes use of new error codes which load_elf() can return.
> 
> Signed-off-by: Alexey Kardashevskiy <address@hidden>
> ---
> hw/ppc/spapr.c | 17 ++++++++++++++---
> 1 file changed, 14 insertions(+), 3 deletions(-)
> 
> diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
> index 851ce4b..18a4872 100644
> --- a/hw/ppc/spapr.c
> +++ b/hw/ppc/spapr.c
> @@ -1306,15 +1306,26 @@ static void ppc_spapr_init(QEMUMachineInitArgs *args)
> 
>         kernel_size = load_elf(kernel_filename, translate_kernel_address, 
> NULL,
>                                NULL, &lowaddr, NULL, 1, ELF_MACHINE, 0);
> -        if (kernel_size < 0) {
> +        if (kernel_size == ELF_LOAD_WRONG_ENDIAN) {
>             kernel_size = load_elf(kernel_filename,
>                                    translate_kernel_address, NULL,
>                                    NULL, &lowaddr, NULL, 0, ELF_MACHINE, 0);
>             kernel_le = kernel_size > 0;
>         }
>         if (kernel_size < 0) {
> -            fprintf(stderr, "qemu: could not load kernel '%s'\n",
> -                    kernel_filename);
> +            switch (kernel_size) {
> +            case ELF_LOAD_WRONG_ARCH:
> +                fprintf(stderr, "qemu: could not load kernel '%s' from 
> incompatible arhitecture\n",
> +                        kernel_filename);
> +                break;
> +            case ELF_LOAD_NOT_ELF:
> +                fprintf(stderr, "qemu: '%s' is not ELF\n", kernel_filename);

These exit code to string translation should be a common helper, similar to 
strerror(). Apart from that I like the patch set.


Alex

> +                break;
> +            default:
> +                fprintf(stderr, "qemu: could not load kernel '%s'\n",
> +                        kernel_filename);
> +                break;
> +            }
>             exit(1);
>         }
> 
> -- 
> 1.8.4.rc4
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]