Messages in this thread | | | From | Kyle Moffett <> | Subject | Re: [RFC] Splitting out kernel<=>userspace ABI headers | Date | Sat, 3 Sep 2005 01:55:17 -0400 |
| |
On Sep 3, 2005, at 00:28:59, Erik Andersen wrote: >> Absolutely not. This would be a POSIX namespace violation; they >> *must* use double-underscore types. > > I assume you are worried about the stuff under asm that ends up > being included by nearly every header file in the world. Of > course asm must use double-underscore types. But the thing is, > the vast majority of the kernel headers live under > linux/include/linux/ and do not use double-underscore types, they > use kernel specific, non-underscored types such as s8, u32, etc. > My copy of IEEE 1003.1 and my copy of ISO/IEC 9899:1999 both fail > to prohibit using the shiny new ISO C99 type for the various > #include <linux/*> header files, which is what I was suggesting.
Anything in linux/* that is included by userspace should not presume that stdint.h has already been included or include it on its own, because the userspace program may have already made its own definitions of uint32_t, or it may not want them defined at all.
> The world would be so much nicer a place if user space were free > to #include linux/* header files rather than keeping a > per-project private copy of all kernel structs of interest.
Exactly! This is why I want to create kcore/* and kabi/* that define the appropriate types, then both userspace and the kernel could use whatever types fit their fancy, defined in terms of the __kcore_ and __kabi_ types, which could be _depended_ on to exist because they are guaranteed not to conflict with other namespaces
Cheers, Kyle Moffett
-- I have yet to see any problem, however complicated, which, when you looked at it in the right way, did not become still more complicated. -- Poul Anderson
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |