diff options
Diffstat (limited to 'arch/parisc/include/asm/processor.h')
-rw-r--r-- | arch/parisc/include/asm/processor.h | 27 |
1 files changed, 0 insertions, 27 deletions
diff --git a/arch/parisc/include/asm/processor.h b/arch/parisc/include/asm/processor.h index 54adb60c0a42..7e759ecb1343 100644 --- a/arch/parisc/include/asm/processor.h +++ b/arch/parisc/include/asm/processor.h | |||
@@ -192,33 +192,6 @@ void show_trace(struct task_struct *task, unsigned long *stack); | |||
192 | */ | 192 | */ |
193 | typedef unsigned int elf_caddr_t; | 193 | typedef unsigned int elf_caddr_t; |
194 | 194 | ||
195 | #define start_thread_som(regs, new_pc, new_sp) do { \ | ||
196 | unsigned long *sp = (unsigned long *)new_sp; \ | ||
197 | __u32 spaceid = (__u32)current->mm->context; \ | ||
198 | unsigned long pc = (unsigned long)new_pc; \ | ||
199 | /* offset pc for priv. level */ \ | ||
200 | pc |= 3; \ | ||
201 | \ | ||
202 | regs->iasq[0] = spaceid; \ | ||
203 | regs->iasq[1] = spaceid; \ | ||
204 | regs->iaoq[0] = pc; \ | ||
205 | regs->iaoq[1] = pc + 4; \ | ||
206 | regs->sr[2] = LINUX_GATEWAY_SPACE; \ | ||
207 | regs->sr[3] = 0xffff; \ | ||
208 | regs->sr[4] = spaceid; \ | ||
209 | regs->sr[5] = spaceid; \ | ||
210 | regs->sr[6] = spaceid; \ | ||
211 | regs->sr[7] = spaceid; \ | ||
212 | regs->gr[ 0] = USER_PSW; \ | ||
213 | regs->gr[30] = ((new_sp)+63)&~63; \ | ||
214 | regs->gr[31] = pc; \ | ||
215 | \ | ||
216 | get_user(regs->gr[26],&sp[0]); \ | ||
217 | get_user(regs->gr[25],&sp[-1]); \ | ||
218 | get_user(regs->gr[24],&sp[-2]); \ | ||
219 | get_user(regs->gr[23],&sp[-3]); \ | ||
220 | } while(0) | ||
221 | |||
222 | /* The ELF abi wants things done a "wee bit" differently than | 195 | /* The ELF abi wants things done a "wee bit" differently than |
223 | * som does. Supporting this behavior here avoids | 196 | * som does. Supporting this behavior here avoids |
224 | * having our own version of create_elf_tables. | 197 | * having our own version of create_elf_tables. |