Skip to content

Commit

Permalink
[SPARC32]: Use regsets for ELF core dumping.
Browse files Browse the repository at this point in the history
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
David S. Miller committed Feb 7, 2008
1 parent 3389742 commit 5a4924d
Showing 1 changed file with 8 additions and 30 deletions.
38 changes: 8 additions & 30 deletions include/asm-sparc/elf.h
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,14 @@
#define HWCAP_SPARC_V9 16
#define HWCAP_SPARC_ULTRA3 32

/* For the most part we present code dumps in the format
* Solaris does.
#define CORE_DUMP_USE_REGSET

/* Format is:
* G0 --> G7
* O0 --> O7
* L0 --> L7
* I0 --> I7
* PSR, PC, nPC, Y, WIM, TBR
*/
typedef unsigned long elf_greg_t;
#define ELF_NGREG 38
Expand All @@ -87,34 +93,6 @@ typedef struct {

#ifdef __KERNEL__
#include <asm/mbus.h>
#include <asm/uaccess.h>

/* Format is:
* G0 --> G7
* O0 --> O7
* L0 --> L7
* I0 --> I7
* PSR, PC, nPC, Y, WIM, TBR
*/
#define ELF_CORE_COPY_REGS(__elf_regs, __pt_regs) \
do { unsigned long *dest = &(__elf_regs[0]); \
struct pt_regs *src = (__pt_regs); \
unsigned long __user *sp; \
memcpy(&dest[0], &src->u_regs[0], \
sizeof(unsigned long) * 16); \
/* Don't try this at home kids... */ \
sp = (unsigned long __user *) src->u_regs[14]; \
copy_from_user(&dest[16], sp, \
sizeof(unsigned long) * 16); \
dest[32] = src->psr; \
dest[33] = src->pc; \
dest[34] = src->npc; \
dest[35] = src->y; \
dest[36] = dest[37] = 0; /* XXX */ \
} while(0); /* Janitors: Don't touch this semicolon. */

#define ELF_CORE_COPY_TASK_REGS(__tsk, __elf_regs) \
({ ELF_CORE_COPY_REGS((*(__elf_regs)), (__tsk)->thread.kregs); 1; })

/*
* This is used to ensure we don't load something for the wrong architecture.
Expand Down

0 comments on commit 5a4924d

Please sign in to comment.