aboutsummaryrefslogtreecommitdiff
path: root/linux-user/m68k/target_elf.h
diff options
context:
space:
mode:
Diffstat (limited to 'linux-user/m68k/target_elf.h')
-rw-r--r--linux-user/m68k/target_elf.h36
1 files changed, 27 insertions, 9 deletions
diff --git a/linux-user/m68k/target_elf.h b/linux-user/m68k/target_elf.h
index 998fe0f..b997fa0 100644
--- a/linux-user/m68k/target_elf.h
+++ b/linux-user/m68k/target_elf.h
@@ -7,14 +7,32 @@
#ifndef M68K_TARGET_ELF_H
#define M68K_TARGET_ELF_H
-static inline const char *cpu_get_model(uint32_t eflags)
-{
- if (eflags == 0 || (eflags & EF_M68K_M68000)) {
- /* 680x0 */
- return "m68040";
- }
- /* Coldfire */
- return "any";
-}
+#define ELF_CLASS ELFCLASS32
+#define ELF_MACHINE EM_68K
+
+#define HAVE_ELF_CORE_DUMP 1
+
+/*
+ * See linux kernel: arch/m68k/include/asm/elf.h, where
+ * elf_gregset_t is mapped to struct user_regs_struct via sizeof.
+ *
+ * Note that user_regs_struct has
+ * short stkadj, sr;
+ * ...
+ * short fmtvec, __fill;
+ * but ELF_CORE_COPY_REGS writes to unsigned longs.
+ * Therefore adjust the sr and fmtvec fields to match.
+ */
+typedef struct target_elf_gregset_t {
+ abi_ulong d1, d2, d3, d4, d5, d6, d7;
+ abi_ulong a0, a1, a2, a3, a4, a5, a6;
+ abi_ulong d0;
+ abi_ulong usp;
+ abi_ulong orig_d0;
+ abi_ulong sr;
+ abi_ulong pc;
+ abi_ulong fmtvec;
+} target_elf_gregset_t;
+
#endif