Josh Triplett <josh at joshtriplett.org> wrote: > > Sure. And 0 is perfectly fine value for the flag. Like with MAP_FILE. > > Rephrasing: the flag should always exist with the correct value. > Whether the kernel handles it or not, the kernel *headers* shouldn't > change to match the kernel, not least of which because they don't > necessarily match the running kernel. Just like we define the > prototypes for syscalls that the running kernel may return ENOSYS for. Josh is correct. CONFIG_xxx *should* *not* be seen in UAPI headers, except inside #ifdef __KERNEL__ guards under special circumstances - and #ifdef __KERNEL__ guards *should* *not* be seen in UAPI headers except under special circumstances. In terms of such special circumstances, take a peek in include/uapi/linux/acct.h at struct acct with this: /* m68k had no padding here. */ #if !defined(CONFIG_M68K) || !defined(__KERNEL__) __u16 ac_ahz; /* AHZ */ #endif in the middle of it... Or include/{,uapi/}linux/agpgart.h where it defines two different but same-named variants of several structs. Now, some of these - particularly things like the latter - can be fixed by someone who has the time. David