diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2008-02-07 13:21:26 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2008-02-07 13:21:26 -0500 |
commit | 0afc2edfada50980bec999f94dcea26ebad3dda6 (patch) | |
tree | 8963dd8fd78ee5c3481acad5903bc459bd3d055c /include/asm-sparc | |
parent | a8e98d6d51a3eb7bb061b1625193a129c8bd094f (diff) | |
parent | d256eb8db60e36fc5dd0a27ce8a64f65df31f7b5 (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.h | 38 | ||||
-rw-r--r-- | include/asm-sparc/ptrace.h | 7 |
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 | */ |
71 | typedef unsigned long elf_greg_t; | 77 | typedef 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) \ | ||
99 | do { 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) |
68 | unsigned long profile_pc(struct pt_regs *); | 66 | unsigned 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) */ |