aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-sparc
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2008-02-07 13:21:26 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2008-02-07 13:21:26 -0500
commit0afc2edfada50980bec999f94dcea26ebad3dda6 (patch)
tree8963dd8fd78ee5c3481acad5903bc459bd3d055c /include/asm-sparc
parenta8e98d6d51a3eb7bb061b1625193a129c8bd094f (diff)
parentd256eb8db60e36fc5dd0a27ce8a64f65df31f7b5 (diff)
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')
-rw-r--r--include/asm-sparc/elf.h38
-rw-r--r--include/asm-sparc/ptrace.h7
2 files changed, 8 insertions, 37 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 @@
65#define HWCAP_SPARC_V9 16 65#define HWCAP_SPARC_V9 16
66#define HWCAP_SPARC_ULTRA3 32 66#define HWCAP_SPARC_ULTRA3 32
67 67
68/* For the most part we present code dumps in the format 68#define CORE_DUMP_USE_REGSET
69 * Solaris does. 69
70/* Format is:
71 * G0 --> G7
72 * O0 --> O7
73 * L0 --> L7
74 * I0 --> I7
75 * PSR, PC, nPC, Y, WIM, TBR
70 */ 76 */
71typedef unsigned long elf_greg_t; 77typedef unsigned long elf_greg_t;
72#define ELF_NGREG 38 78#define ELF_NGREG 38
@@ -86,34 +92,6 @@ typedef struct {
86} elf_fpregset_t; 92} elf_fpregset_t;
87 93
88#include <asm/mbus.h> 94#include <asm/mbus.h>
89#include <asm/uaccess.h>
90
91/* Format is:
92 * G0 --> G7
93 * O0 --> O7
94 * L0 --> L7
95 * I0 --> I7
96 * PSR, PC, nPC, Y, WIM, TBR
97 */
98#define ELF_CORE_COPY_REGS(__elf_regs, __pt_regs) \
99do { unsigned long *dest = &(__elf_regs[0]); \
100 struct pt_regs *src = (__pt_regs); \
101 unsigned long __user *sp; \
102 memcpy(&dest[0], &src->u_regs[0], \
103 sizeof(unsigned long) * 16); \
104 /* Don't try this at home kids... */ \
105 sp = (unsigned long __user *) src->u_regs[14]; \
106 copy_from_user(&dest[16], sp, \
107 sizeof(unsigned long) * 16); \
108 dest[32] = src->psr; \
109 dest[33] = src->pc; \
110 dest[34] = src->npc; \
111 dest[35] = src->y; \
112 dest[36] = dest[37] = 0; /* XXX */ \
113} while(0); /* Janitors: Don't touch this semicolon. */
114
115#define ELF_CORE_COPY_TASK_REGS(__tsk, __elf_regs) \
116 ({ ELF_CORE_COPY_REGS((*(__elf_regs)), (__tsk)->thread.kregs); 1; })
117 95
118/* 96/*
119 * This is used to ensure we don't load something for the wrong architecture. 97 * This is used to ensure we don't load something for the wrong architecture.
diff --git a/include/asm-sparc/ptrace.h b/include/asm-sparc/ptrace.h
index 714497099a42..8201a7b29d49 100644
--- a/include/asm-sparc/ptrace.h
+++ b/include/asm-sparc/ptrace.h
@@ -61,8 +61,6 @@ struct sparc_stackf {
61 61
62#ifdef __KERNEL__ 62#ifdef __KERNEL__
63 63
64#define __ARCH_SYS_PTRACE 1
65
66#define user_mode(regs) (!((regs)->psr & PSR_PS)) 64#define user_mode(regs) (!((regs)->psr & PSR_PS))
67#define instruction_pointer(regs) ((regs)->pc) 65#define instruction_pointer(regs) ((regs)->pc)
68unsigned long profile_pc(struct pt_regs *); 66unsigned long profile_pc(struct pt_regs *);
@@ -151,8 +149,6 @@ extern void show_regs(struct pt_regs *);
151#define SF_XXARG 0x5c 149#define SF_XXARG 0x5c
152 150
153/* Stuff for the ptrace system call */ 151/* Stuff for the ptrace system call */
154#define PTRACE_SUNATTACH 10
155#define PTRACE_SUNDETACH 11
156#define PTRACE_GETREGS 12 152#define PTRACE_GETREGS 12
157#define PTRACE_SETREGS 13 153#define PTRACE_SETREGS 13
158#define PTRACE_GETFPREGS 14 154#define PTRACE_GETFPREGS 14
@@ -164,7 +160,4 @@ extern void show_regs(struct pt_regs *);
164#define PTRACE_GETFPAREGS 20 160#define PTRACE_GETFPAREGS 20
165#define PTRACE_SETFPAREGS 21 161#define PTRACE_SETFPAREGS 21
166 162
167#define PTRACE_GETUCODE 29 /* stupid bsd-ism */
168
169
170#endif /* !(_SPARC_PTRACE_H) */ 163#endif /* !(_SPARC_PTRACE_H) */