[SPARC32]: Use regsets for ELF core dumping.
authorDavid S. Miller <davem@davemloft.net>
Thu, 7 Feb 2008 12:36:02 +0000 (04:36 -0800)
committerDavid S. Miller <davem@davemloft.net>
Thu, 7 Feb 2008 12:36:02 +0000 (04:36 -0800)
Signed-off-by: David S. Miller <davem@davemloft.net>
include/asm-sparc/elf.h

index aaf6ef40ee2fc12142794a5bd651fc1c91dd3981..2f8ff3fa095730e2de64051e2fbf2595a47a6fae 100644 (file)
 #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.