* Peter Zijlstra <[email protected]> wrote:

> > > SYNOPSIS
> > >         #include <sched.h>
> > >
> > >         struct sched_attr {
> > >                 u32 size;
> > >
> > >                 u32 sched_policy;
> > >                 u64 sched_flags;
> > [...]
> > >         };
> > >
> > >         int sched_setattr(pid_t pid, const struct sched_attr *attr);
> > >
> > >         int sched_getattr(pid_t pid, const struct sched_attr *attr, 
> > > unsigned int size);
> > 
> > So, I that there's a flags field in the structure, which allows for
> > some extensibility for these calls in the future. However, is it
> > worthwhile to consider adding a 'flags' argument in the base signature
> > of either of these calls, to allow for some possible extensions in the
> > future. (See http://lwn.net/SubscriberLink/585415/7b905c0248a158a2/ ).
> 
> Sure why not.. I picked 'unsigned long' for the flags argument; I 
> don't think there's a real standard for this, I've seen: 'int' 
> 'unsigned int' and 'unsigned long' flags.
> 
> Please holler if there is indeed a preference and I picked the wrong
> one.

Yo!

So, since this is an ABI, if it's a true 64-bit flags value then 
please make it u64 - and 'unsigned int' or u32 otherwise. I don't 
think we have many (any?) 'long' argument syscall ABIs.

'unsigned long' is generally a bad choice because it's u32 on 32-bit 
platforms and u64 on 64-bit platforms.

Now, for syscall argument ABIs it's not a lethal mistake to make (as 
compared to say ABI data structures), because syscall arguments have 
their own types and width anyway, so any definition mistake can 
usually be fixed after the fact.

Thanks,

        Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to