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.

_______________________________________________
Containers mailing list
contain...@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers

_______________________________________________
Devel mailing list
Devel@openvz.org
https://openvz.org/mailman/listinfo/devel

Reply via email to