summaryrefslogtreecommitdiff
path: root/include/asm-sparc/elf.h
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2008-02-07 21:21:26 +0300
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2008-02-07 21:21:26 +0300
commit0afc2edfada50980bec999f94dcea26ebad3dda6 (patch)
tree8963dd8fd78ee5c3481acad5903bc459bd3d055c /include/asm-sparc/elf.h
parenta8e98d6d51a3eb7bb061b1625193a129c8bd094f (diff)
parentd256eb8db60e36fc5dd0a27ce8a64f65df31f7b5 (diff)
downloadlinux-0afc2edfada50980bec999f94dcea26ebad3dda6.tar.xz
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6: [SPARC32]: Use regsets in arch_ptrace(). [SPARC64]: Use regsets in arch_ptrace(). [SPARC32]: Use regsets for ELF core dumping. [SPARC64]: Use regsets for ELF core dumping. [SPARC64]: Remove unintentional ptrace debugging messages. [SPARC]: Move over to arch_ptrace(). [SPARC]: Remove PTRACE_SUN* handling. [SPARC]: Kill DEBUG_PTRACE code. [SPARC32]: Add user regset support. [SPARC64]: Add user regsets. [SPARC64]: Fix booting on non-zero cpu.
Diffstat (limited to 'include/asm-sparc/elf.h')
-rw-r--r--include/asm-sparc/elf.h38
1 files changed, 8 insertions, 30 deletions
diff --git a/include/asm-sparc/elf.h b/include/asm-sparc/elf.h
index 668814e1e539..d2516eed3a38 100644
--- a/include/asm-sparc/elf.h
+++ b/include/asm-sparc/elf.h
@@ -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
@@ -86,34 +92,6 @@ typedef struct {
} elf_fpregset_t;
#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.