m68knommu: add definitions to support elf_fdpic program loader
authorGreg Ungerer <gerg@linux-m68k.org>
Wed, 27 Apr 2022 13:32:15 +0000 (23:32 +1000)
committerGreg Ungerer <gerg@linux-m68k.org>
Mon, 16 May 2022 03:18:30 +0000 (13:18 +1000)
Add a few required defines to support using the binfmt_elf_fdpic
loader on the m68k architecture. The values are defined to be consistent
with those used on arm and sh which support this too.

The most important m68k specific change is the register initialization.
The pt_reg structure only contains a subset of the architecture general
registers, so we are more limited than to be expected on what can be used.

Signed-off-by: Greg Ungerer <gerg@linux-m68k.org>
arch/m68k/include/asm/elf.h
arch/m68k/include/uapi/asm/ptrace.h

index 3d387ceaea3fdfe2dc0489525640b6e90fe94db8..2def06a99b08b2186fc341ab94bc4d7ce7ed1f35 100644 (file)
@@ -60,6 +60,13 @@ typedef struct user_m68kfp_struct elf_fpregset_t;
    is actually used on ASV.  */
 #define ELF_PLAT_INIT(_r, load_addr)   _r->a1 = 0
 
+#define ELF_FDPIC_PLAT_INIT(_r, _exec_map_addr, _interp_map_addr, dynamic_addr) \
+        do { \
+                (_r)->d3 = _exec_map_addr; \
+                (_r)->d4 = _interp_map_addr; \
+                (_r)->d5 = dynamic_addr; \
+        } while(0)
+
 #if defined(CONFIG_SUN3) || defined(CONFIG_COLDFIRE)
 #define ELF_EXEC_PAGESIZE      8192
 #else
@@ -114,4 +121,6 @@ typedef struct user_m68kfp_struct elf_fpregset_t;
 
 #define ELF_PLATFORM  (NULL)
 
+#define ELF_FDPIC_CORE_EFLAGS  0
+
 #endif
index 19a1b9d0d858148599a732825bcd84c55be0a351..5b50ea592e002d09902d13d9889f0103a2a25c8c 100644 (file)
@@ -74,7 +74,12 @@ struct switch_stack {
 
 #define PTRACE_GET_THREAD_AREA    25
 
+#define PTRACE_GETFDPIC        31
+
 #define PTRACE_SINGLEBLOCK     33      /* resume execution until next branch */
 
+#define PTRACE_GETFDPIC_EXEC   0
+#define PTRACE_GETFDPIC_INTERP 1
+
 #endif /* __ASSEMBLY__ */
 #endif /* _UAPI_M68K_PTRACE_H */