On 22.01.2014, at 06:20, Alexey Kardashevskiy <a...@ozlabs.ru> wrote:
> This makes use of new error codes which load_elf() can return. > > Signed-off-by: Alexey Kardashevskiy <a...@ozlabs.ru> > --- > 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 >