On Wed, Dec 04, 2013 at 12:07:42PM -0200, Lourival Vieira Neto wrote: > >>> No, <stddef.h> is not allowed in the kernel. Symbols from it are > >>> provided via other means. > >> > >> I know. In fact, I'm asking if it would be alright to allow that. > >> AFAIK, it would be inoffensive if available in the kernel. > > > > Actually, it would be offensive. > > Why?
I would also like to know why that would be offensive! I'm always disappointed when I have to write something like this in order to share code between the userland and kernel, #if defined(_KERNEL) || defined(_STANDALONE) #include <sys/types.h> /* for bool, size_t---XXX not right? */ #else #include <stdbool.h> /* for bool */ #include <sys/types.h> /* for size_t */ #endif Apparently, <stddef.h> is the correct header for size_t, so that is more properly written like this, #if defined(_KERNEL) || defined(_STANDALONE) #include <sys/types.h> /* for bool, size_t---XXX not right? */ #else #include <stdbool.h> /* for bool */ #include <stddef.h> /* for size_t */ #endif I would prefer for this to suffice both for the kernel and userland: #include <stdbool.h> /* for bool */ #include <stddef.h> /* for size_t */ ISTM that the reasons things are not that simple are merely historical reasons, but I am open to other explanations. Dave -- David Young dyo...@pobox.com Urbana, IL (217) 721-9981