Messages in this thread | | | Date | Wed, 09 Sep 2009 08:51:59 -0700 | From | "H. Peter Anvin" <> | Subject | Re: [RFC][v5][PATCH 8/8]: Define clone_with_pids() syscall |
| |
On 09/09/2009 05:19 AM, Arnd Bergmann wrote: > > This is a complex problem. The structure above would need a conversion > for the pointer size that you can avoid by using a u64, but that introduces > another problem: > > 2. use a single pointer, with variable length data structures: > > struct pid_set { > int num_pids; > pid_t pids[0]; > }; > > Since pid_t is always an int, you have no problem with padding or > incompatible types, but rely on a data structure definition that > is not in C89 (not sure about C99). >
C90 has these data structures, but you have to give the array a nonzero length:
struct pid_set { int num_pids; pid_t pids[1]; };
In C99, this is spelt:
struct pid_set { int num_pids; pid_t pids[]; };
-hpa
-- H. Peter Anvin, Intel Open Source Technology Center I work for Intel. I don't speak on their behalf.
| |