[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-ppc] [PATCH v4 4/4] target-ppc: Set the correct endianness in ELF
From: |
Greg Kurz |
Subject: |
[Qemu-ppc] [PATCH v4 4/4] target-ppc: Set the correct endianness in ELF dump header |
Date: |
Mon, 19 May 2014 19:59:22 +0200 |
User-agent: |
StGit/0.16 |
From: Bharata B Rao <address@hidden>
Signed-off-by: Bharata B Rao <address@hidden>
Reviewed-by: Alexander Graf <address@hidden>
Signed-off-by: Greg Kurz <address@hidden>
---
No change.
target-ppc/arch_dump.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/target-ppc/arch_dump.c b/target-ppc/arch_dump.c
index 5a3b40d..5acafc6 100644
--- a/target-ppc/arch_dump.c
+++ b/target-ppc/arch_dump.c
@@ -209,12 +209,16 @@ typedef struct NoteFuncDescStruct NoteFuncDesc;
int cpu_get_dump_info(ArchDumpInfo *info,
const struct GuestPhysBlockList *guest_phys_blocks)
{
- /*
- * Currently only handling PPC64 big endian.
- */
+ PowerPCCPU *cpu = POWERPC_CPU(first_cpu);
+ PowerPCCPUClass *pcc = POWERPC_CPU_GET_CLASS(cpu);
+
info->d_machine = EM_PPC64;
- info->d_endian = ELFDATA2MSB;
info->d_class = ELFCLASS64;
+ if ((*pcc->interrupts_big_endian)(cpu)) {
+ info->d_endian = ELFDATA2MSB;
+ } else {
+ info->d_endian = ELFDATA2LSB;
+ }
return 0;
}