For the time being I added another wait queue to struct task, and I do
a sleep_on in the parent. When the child exits, in do_exit, just after
notify_parent, it does a wake_up on current->p_pptr->vfork_sleep.
I think that most of the handling could be eliminated if we simply
reused the chldexit queue that wait4 uses. Essentially forking then
waiting, but wait it signal interruptable.
The reason I did it the way I did it, is so you could vfork from a
cloned thread, and theoretically a recursive vfork should work without
error.
I haven't tested it yet, just got all the code in and built a kernel, next
I'll write a test proggy.
Just to be clear, I'd need to do a SYS_190() to call it, right? If not,
how do you make direct syscalls?
>
> Later,
> David S. Miller
> davem@dm.cobaltmicro.com
>
--Perry
-- Perry Harrington Linux rules all OSes. APSoft () email: perry@apsoft.com Think Blue. /\- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/