(got some time off so i'm rooting around in the current kernel source tree and i'll be asking lots of questions of the collective wisdom of this group.) once upon a time (as most people remember), lots of kernel header files were replete with tests of the form: #ifdef __KERNEL__ #ifndef __KERNEL__ which defined the userspace content to be exported to userspace (the files to be unifdef'ed listed in Kbuild files all over the place). and this was allegegly tidied up with the introduction of the uapi/ directory structure, where all userspace content was collected into one of: * include/uapi/... * arch/<arch>/include/uapi/... one would think that that would have made the Kbuild files and all the __KERNEL__ tests obsolete but i guess it's no surprise that there's still a lot of that cruft lying around. as a simple example, here's a snippet from include/linux/acct.h: #ifndef _LINUX_ACCT_H #define _LINUX_ACCT_H #include <uapi/linux/acct.h> which clearly pulls in the uapi content for that header file as well. but over in that second (uapi) file, we still find a (deprecated?) __KERNEL__ test: /* m68k had no padding here. */ #if !defined(CONFIG_M68K) || !defined(__KERNEL__) __u16 ac_ahz; /* AHZ */ #endif __u32 ac_exitcode; /* Exitcode */ and if i run "make headers_install" to see the end result generated under <kernel>/usr/include/, i can see the userspace-generated acct.h file contains the snippet: /* m68k had no padding here. */ __u16 ac_ahz; /* AHZ */ __u32 ac_exitcode; /* Exitcode */ which is correct, but what's the value of the existing __KERNEL__ test(s) in any of the uapi/ header files? a lot of the existing KBuild files are empty, but they still exist under the uapi/ directories, where they seem to have the same purpose as before. is this leftover junk because the remaining uapi/ header files have not properly been cleaned of all those __KERNEL__ tests? or is there still something that those __KERNEL__ tests are being used for? thanks. rday -- ======================================================================== Robert P. J. Day Ottawa, Ontario, CANADA http://crashcourse.ca Twitter: http://twitter.com/rpjday LinkedIn: http://ca.linkedin.com/in/rpjday ========================================================================