Re: [dm-devel] [PATCH v05 04/72] dm-log-userspace.h: use __u32, __s32 and __u64 from linux/types.h

From: Mikko Rapeli
Date: Tue Aug 23 2016 - 16:42:41 EST


On Tue, Aug 23, 2016 at 02:28:19PM +0000, Bart Van Assche wrote:
> On 08/23/16 06:57, Bart Van Assche wrote:
> > On 08/22/16 11:32, Mikko Rapeli wrote:
> >> - * uint32_t (*get_region_size)(struct dm_dirty_log *log);
> >> + * __u32 (*get_region_size)(struct dm_dirty_log *log);
> >
> > uint32_t is a type that is defined by ANSI C but __u32 not. So this
> > change looks wrong to me. Would it have been sufficient to add "#include
> > <linux/types.h>" and keep the uint32_t etc. type names?
>
> Answering my own question: adding "#include <linux/types.h>" wouldn't be
> sufficient. How about adding the following code that also occurs in a
> few other uapi header files?
>
> #ifndef __KERNEL__
> #include <stdint.h>
> #endif
> #include <linux/types.h>

I have tried that before but I was instructed to use the linux/types.h
versions. For example https://lkml.org/lkml/2015/6/1/160

But lately drm and fuse and some others have questioned this approach and
would like to use/continue using C99 stdint.h types.

-Mikko