help on copy_thread
jc duyrat
jcduyrat at yahoo.com
Mon Jan 10 23:06:53 EST 2000
hy everybody, <br>
<br>
I have a question about copy_thread in <br>
arch/ppc/kernel/process.c (linux ver 2.2.13, 2.3.34
and others..): <br>
why don't we want to execute <br>
childregs->gpr[2] = (unsigned long) p; <br>
when we are forking a process user ? <br>
What is the purpose of keeping the father's tss in
childregs->gpr[2] ?<br><br>
thank you for your help. <br>
<br>
JC <br>
<br>
copy_thread(int nr, unsigned long clone_flags,
unsigned long usp, <br>struct task_struct * p, struct
pt_regs *regs)<br>
{<br>
struct pt_regs * childregs, *kregs;<br>
#ifdef __SMP__<br>
extern void ret_from_smpfork(void);<br>
#else<br>
extern void ret_from_syscall(void);<br>
#endif<br>
/* Copy registers */<br>
childregs = ((struct pt_regs *)<br>
((unsigned long)p + sizeof(union
task_union)<br>
- STACK_FRAME_OVERHEAD)) - 2;<br>
*childregs = *regs;<br>
if ((childregs->msr & MSR_PR) == 0) <br>
childregs->gpr[2] = (unsigned long) p;<br>
....
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
More information about the Linuxppc-dev
mailing list