kern
diff src/proc.c @ 59:ef9cc2e90277
added a comment describing the push of just_forked address to the stack frame of the newly-forked process.
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Wed, 17 Aug 2011 05:33:03 +0300 |
parents | 437360696883 |
children | f44bec97a0ec |
line diff
1.1 --- a/src/proc.c Wed Aug 17 05:30:06 2011 +0300 1.2 +++ b/src/proc.c Wed Aug 17 05:33:03 2011 +0300 1.3 @@ -176,7 +176,11 @@ 1.4 /* child's return from fork returns 0 */ 1.5 ((struct intr_frame*)p->ctx.stack_ptr)->regs.eax = 0; 1.6 1.7 - /* XXX describe */ 1.8 + /* we also need the address of just_forked in the stack, so that switch_stacks 1.9 + * called from context_switch, will return to just_forked when we first switch 1.10 + * to a newly forked process. just_forked then just calls intr_ret to return to 1.11 + * userspace with the already constructed interrupt frame (see above). 1.12 + */ 1.13 p->ctx.stack_ptr -= 4; 1.14 *(uint32_t*)p->ctx.stack_ptr = (uint32_t)just_forked; 1.15