From: Dave Kleikamp Date: Wed, 21 May 2014 18:58:40 +0000 (-0500) Subject: sparc64: add sparc64_elf_core_copy_regs X-Git-Tag: v4.1.12-92~147^2~3^2~20 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=d818bbae24aa789fc9f1fbbfc8832506321ceb92;p=users%2Fjedix%2Flinux-maple.git sparc64: add sparc64_elf_core_copy_regs original patch by Bob Picco Signed-off-by: Dave Kleikamp Cc: Bob Picco --- diff --git a/arch/sparc/include/asm/elf_64.h b/arch/sparc/include/asm/elf_64.h index 3b102c340b138..684e31dbf9f46 100644 --- a/arch/sparc/include/asm/elf_64.h +++ b/arch/sparc/include/asm/elf_64.h @@ -119,6 +119,9 @@ 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]; diff --git a/arch/sparc/kernel/process_64.c b/arch/sparc/kernel/process_64.c index 46a59643bb1ce..92a641b520061 100644 --- a/arch/sparc/kernel/process_64.c +++ b/arch/sparc/kernel/process_64.c @@ -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], ®s->u_regs[8], 8 * sizeof(unsigned long)); + dst[32] = regs->tstate; + dst[33] = regs->tpc; + dst[34] = regs->tnpc; + dst[35] = regs->y; +}