Re: [LTP] [PATCH v2] uapi: Make __{u, s}64 match {u, }int64_t in userspace

From: Florian Weimer
Date: Tue Jun 21 2022 - 06:58:47 EST


* Cyril Hrubis:

> From: Cyril Hrubis <chrubis@xxxxxxx>
>
> This changes the __u64 and __s64 in userspace on 64bit platforms from
> long long (unsigned) int to just long (unsigned) int in order to match
> the uint64_t and int64_t size in userspace.
>
> This allows us to use the kernel structure definitions in userspace.
>
> For example we can use PRIu64 and PRId64 modifiers in printf() to print
> structure membere. Morever with this there would be no need to redefine
> these structures in an libc implementations as it is done now.
>
> Consider for example the newly added statx() syscall. If we use the
> header from uapi we will get warnings when attempting to print it's
> members as:
>
> printf("%" PRIu64 "\n", stx.stx_size);
>
> We get:
>
> warning: format '%lu' expects argument of type 'long unsigned int',
> but argument 5 has type '__u64' {aka 'long long unsigned int'}
>
> Signed-off-by: Cyril Hrubis <chrubis@xxxxxxx>

Could you add some motivation for the C++ condition to the commit
message?

Thanks,
Florian