]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
sparc64: add sparc64_elf_core_copy_regs
authorDave Kleikamp <dave.kleikamp@oracle.com>
Wed, 21 May 2014 18:58:40 +0000 (13:58 -0500)
committerDave Kleikamp <dave.kleikamp@oracle.com>
Mon, 18 Apr 2016 16:42:46 +0000 (11:42 -0500)
original patch by Bob Picco

Signed-off-by: Dave Kleikamp <dave.kleikamp@oracle.com>
Cc: Bob Picco <bob.picco@oracle.com>
arch/sparc/include/asm/elf_64.h
arch/sparc/kernel/process_64.c

index 3b102c340b138d4295c3914d74c7c49c518094d5..684e31dbf9f46792effd65bb7e3a1b3e57fcc039 100644 (file)
 typedef unsigned long elf_greg_t;
 #define ELF_NGREG 36
 typedef elf_greg_t elf_gregset_t[ELF_NGREG];
+extern void sparc64_elf_core_copy_regs(elf_gregset_t dst, struct pt_regs *regs);
+#define ELF_CORE_COPY_REGS(DEST, REGS)                 \
+       sparc64_elf_core_copy_regs((DEST), (REGS));
 
 typedef struct {
        unsigned long   pr_regs[32];
index 46a59643bb1cee71edbd3d91d3f8f2eb09b3a26a..92a641b52006162b6278f3b240fbdfe8d9c10322 100644 (file)
@@ -777,3 +777,13 @@ unsigned long get_wchan(struct task_struct *task)
 out:
        return ret;
 }
+
+void sparc64_elf_core_copy_regs(elf_gregset_t dst, struct pt_regs *regs)
+{
+       memcpy(&dst[0], regs->u_regs, 8 * sizeof(unsigned long));
+       memcpy(&dst[24],  &regs->u_regs[8], 8 * sizeof(unsigned long));
+       dst[32] = regs->tstate;
+       dst[33] = regs->tpc;
+       dst[34] = regs->tnpc;
+       dst[35] = regs->y;
+}