qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [PATCH 4/4] spapr: add more details error description of wh


From: Alexey Kardashevskiy
Subject: [Qemu-devel] [PATCH 4/4] spapr: add more details error description of why load_elf() failed
Date: Wed, 22 Jan 2014 16:20:41 +1100

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);
+                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]