Re: [PATCH v4 23/79] rds.h: use __u8, __u16, __s16, __u32 and __s64 from linux/types.h

From: Mikko Rapeli
Date: Thu Oct 15 2015 - 18:39:20 EST


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-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/