[SPARC32]: Use regsets for ELF core dumping.
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
3389742f3c
Коммит
5a4924d7be
|
@ -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
|
||||
|
@ -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.
|
||||
|
|
Загрузка…
Ссылка в новой задаче