On Fri, Mar 18, 2022 at 08:24:55PM +0100, Miklos Szeredi wrote: > On Fri, 18 Mar 2022 at 18:14, Carlos Llamas <cmllamas@xxxxxxxxxx> wrote: > > > > Kernel uapi headers are supposed to use __[us]{8,16,32,64} defined by > > <linux/types.h> instead of 'uint32_t' and similar. This patch changes > > all the definitions in this header to use the correct type. Previous > > discussion of this topic can be found here: > > > > https://lkml.org/lkml/2019/6/5/18 > > This is effectively a revert of these two commits: > > 4c82456eeb4d ("fuse: fix type definitions in uapi header") > 7e98d53086d1 ("Synchronize fuse header with one used in library") > > And so we've gone full circle and back to having to modify the header > to be usable in the cross platform library... > > And also made lots of churn for what reason exactly? There are currently only two uapi headers making use of C99 types and one is <linux/fuse.h>. This approach results in different typedefs being selected when compiling for userspace vs the kernel. Plus only __u32 and similar types align with the coding style as described in 5(e). Yet, there is still the cross platform concern you mention. I think the best way to accommodate this while still conforming with the __u32 types is to follow something similar to 1a95916f5465 ("drm: Add compatibility #ifdefs for *BSD"). Basically doing this: #if defined(__KERNEL__) || defined(__linux__) #include <linux/types.h> #else #include <stdint.h> typedef uint16_t __u16; typedef int32_t __s32; typedef uint32_t __u32; typedef int64_t __s64; typedef uint64_t __u64; #endif This alternative selects the correct uapi types for both __KERNEL__ and __linux__ cases which is the main goal of this patch and it's just minor fixes from 7e98d53086d1 ("Synchronize header with one used in library"). I see there where previous attempts to address similar changes here: https://lkml.org/lkml/2013/3/11/620 https://lkml.org/lkml/2013/4/15/487 So, if you agree with the approach above I'd be happy to send a separate patch on top to address the *BSD compatibility. Thanks, Carlos Llamas