On Thursday 15 October 2015 20:32:45 Miklos Szeredi wrote: > > In my other patches I got review comments that kernel headers should not > > use <stdint.h> and also Documentation/CodingStyle section 5 says: > > > > (e) Types safe for use in userspace. > > > > In certain structures which are visible to userspace, we cannot > > require C99 types and cannot use the 'u32' form above. Thus, we > > use __u32 and similar types in all structures which are shared > > with userspace. > > Ok, if you cannot require C99, then the __uXX types are the way to go. > But for the fuse API we *can* use C99 types, nothing preventing us > from doing it. What the sentence above means is that you should not rely on the user including <stdint.h> before including a kernel header, and that kernel headers are not allowed to include <stdint.h> themselves, because that would break any pre-C99 user space that defines types with the same names in their own headers and that relies on that header not to be included implicitly. It's possible that it has never been a problem for the fuse headers, but it has been a problem for other headers in the past and what Mikko is trying to achieve is to ensure that none of the kernel headers do this so we can make it an error in 'make headers_install'. Arnd -- To unsubscribe from this list: send the line "unsubscribe linux-api" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html