Messages in this thread | | | Date | Wed, 09 Apr 2008 17:00:25 -0700 | From | "H. Peter Anvin" <> | Subject | Re: [PATCH 0/3] clone64() and unshare64() system calls |
| |
sukadev@us.ibm.com wrote: > This is a resend of the patch set Cedric had sent earlier. I ported > the patch set to 2.6.25-rc8-mm1 and tested on x86 and x86_64. > --- > > We have run out of the 32 bits in clone_flags ! > > This patchset introduces 2 new system calls which support 64bit clone-flags. > > long sys_clone64(unsigned long flags_high, unsigned long flags_low, > unsigned long newsp); > > long sys_unshare64(unsigned long flags_high, unsigned long flags_low); > > The current version of clone64() does not support CLONE_PARENT_SETTID and > CLONE_CHILD_CLEARTID because we would exceed the 6 registers limit of some > arches. It's possible to get around this limitation but we might not > need it as we already have clone() >
I really dislike this interface.
If you're going to make it a 64-bit pass it in as a 64-bit number, instead of breaking it into two numbers. Better yet, IMO, would be to pass a pointer to a structure like:
struct shared { unsigned long nwords; unsigned long flags[]; };
... which can be expanded indefinitely.
-hpa
| |