| From | Roland McGrath <> | Subject | Re: [RFC][v8][PATCH 0/10] Implement clone3() system call | Date | Tue, 13 Oct 2009 13:50:15 -0700 (PDT) |
| |
Some userland debugging things and so forth like to look at the clone_flags argument, so that is kept simpler for them if it stays in a register (i.e. its own argument) rather than a user pointer fetch for that argument. Any problem with:
sys_clone3(unsigned long clone_flags, struct clone_struct __user *cs, pid_t __user *pids)
?
That also has the side benefit that instead of non-ia64 users forever asking, "Why is it clone3 when there is no clone2?" you can instead pretend that it follows the "clone3 because it takes three arguments" convention. ;-)
Btw, IMHO "struct foo_struct" is one of the lamest naming conventions ever. How about "struct clone_args"?
Also, if you were to replace:
u64 child_stack;
with:
u64 child_stack_base; u64 child_stack_size;
and use in sys_clone3 (for most arch's):
child_stack_ptr = kcs.child_stack_base + kcs.child_stack_size;
then the same clone3 interface would cover ia64 as well.
Thanks, Roland
|