On Thu, Oct 15, 2015 at 06:21:05PM -0400, Sowmini Varadhan wrote: > On (10/16/15 01:00), Mikko Rapeli wrote: > > > > What kind of portability should exported userspace headers from Linux kernel > > need? > > > > Reviews to my previous changes NACKed <stdint.h> usage and > > Documentation/CodingStyle chapter 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. > > Let's be clear: we are not talking about u32 vs __u32, we are talking > about uint32_t vs __u32 in your patch. > > I dont have the context of your "previous changes NACKed.." etc. > Why can we not require C99 types in rds.h? Links to all previous reviews are here: https://lkml.org/lkml/2015/10/15/22 "uint32_t vs __u32" nail is: https://lkml.org/lkml/2015/6/1/160 > Why isnt that a problem for, say, <netinet/in.h> which includes > <stdint.h>? <netinet/in.h> isn't from Linux kernel, it comes from libc. <linux/in.h> is from Linux kernel and that does not include <stdint.h>. But this brough <linux/libc-compat.h> to my attention so thanks for that. Maybe the <time.h> vs. <linux/time.h> conflict could be resolved with it. -Mikko -- 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