PRIu64 is defined in user space to match libc's uint64_t definition.
However, gpioevent_data structure in the kernel is defined using the
kernel's own __u64 type.
gpio-event-mon.c: In function ‘monitor_device’:
gpio-event-mon.c:102:19: warning: format ‘%lu’ expects argument of type
‘long unsigned int’, but argument 3 has type ‘__u64 {aka long long
unsigned int}’ [-Wformat=]
fprintf(stdout, "GPIO EVENT %" PRIu64 ": ", event.timestamp);
^~~~~~~~~~~~~~
LD /tmp/kselftest/gpiogpio-event-mon-in.o
LINK /tmp/kselftest/gpiogpio-event-mon
Fix is to replace PRIu64 with llu, which we know is what the kernel uses
for __u64.
Signed-off-by: Anders Roxell <[email protected]>
---
tools/gpio/gpio-event-mon.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/gpio/gpio-event-mon.c b/tools/gpio/gpio-event-mon.c
index dac4d4131d9b..c864544efe05 100644
--- a/tools/gpio/gpio-event-mon.c
+++ b/tools/gpio/gpio-event-mon.c
@@ -99,7 +99,7 @@ int monitor_device(const char *device_name,
ret = -EIO;
break;
}
- fprintf(stdout, "GPIO EVENT %" PRIu64 ": ", event.timestamp);
+ fprintf(stdout, "GPIO EVENT %llu: ", event.timestamp);
switch (event.id) {
case GPIOEVENT_EVENT_RISING_EDGE:
fprintf(stdout, "rising edge");
--
2.11.0
On 21 February 2018 at 15:33, Anders Roxell <[email protected]> wrote:
> PRIu64 is defined in user space to match libc's uint64_t definition.
> However, gpioevent_data structure in the kernel is defined using the
> kernel's own __u64 type.
>
> gpio-event-mon.c: In function ‘monitor_device’:
> gpio-event-mon.c:102:19: warning: format ‘%lu’ expects argument of type
> ‘long unsigned int’, but argument 3 has type ‘__u64 {aka long long
> unsigned int}’ [-Wformat=]
> fprintf(stdout, "GPIO EVENT %" PRIu64 ": ", event.timestamp);
> ^~~~~~~~~~~~~~
> LD /tmp/kselftest/gpiogpio-event-mon-in.o
> LINK /tmp/kselftest/gpiogpio-event-mon
>
> Fix is to replace PRIu64 with llu, which we know is what the kernel uses
> for __u64.
>
> Signed-off-by: Anders Roxell <[email protected]>
Tested-by: Daniel Díaz <[email protected]>
> ---
> tools/gpio/gpio-event-mon.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/gpio/gpio-event-mon.c b/tools/gpio/gpio-event-mon.c
> index dac4d4131d9b..c864544efe05 100644
> --- a/tools/gpio/gpio-event-mon.c
> +++ b/tools/gpio/gpio-event-mon.c
> @@ -99,7 +99,7 @@ int monitor_device(const char *device_name,
> ret = -EIO;
> break;
> }
> - fprintf(stdout, "GPIO EVENT %" PRIu64 ": ", event.timestamp);
> + fprintf(stdout, "GPIO EVENT %llu: ", event.timestamp);
> switch (event.id) {
> case GPIOEVENT_EVENT_RISING_EDGE:
> fprintf(stdout, "rising edge");
> --
> 2.11.0
On Wed, Feb 21, 2018 at 10:33 PM, Anders Roxell
<[email protected]> wrote:
> PRIu64 is defined in user space to match libc's uint64_t definition.
> However, gpioevent_data structure in the kernel is defined using the
> kernel's own __u64 type.
>
> gpio-event-mon.c: In function ‘monitor_device’:
> gpio-event-mon.c:102:19: warning: format ‘%lu’ expects argument of type
> ‘long unsigned int’, but argument 3 has type ‘__u64 {aka long long
> unsigned int}’ [-Wformat=]
> fprintf(stdout, "GPIO EVENT %" PRIu64 ": ", event.timestamp);
> ^~~~~~~~~~~~~~
> LD /tmp/kselftest/gpiogpio-event-mon-in.o
> LINK /tmp/kselftest/gpiogpio-event-mon
>
> Fix is to replace PRIu64 with llu, which we know is what the kernel uses
> for __u64.
>
> Signed-off-by: Anders Roxell <[email protected]>
Patch applied with Daniel's test tag.
Yours,
Linus Walleij