The typedefs u32 and u64 are not available in userspace. Thus user get an error he try to use DMA_BUF_SET_NAME_A or DMA_BUF_SET_NAME_B: $ gcc -Wall -c -MMD -c -o ioctls_list.o ioctls_list.c In file included from /usr/include/x86_64-linux-gnu/asm/ioctl.h:1, from /usr/include/linux/ioctl.h:5, from /usr/include/asm-generic/ioctls.h:5, from ioctls_list.c:11: ioctls_list.c:463:29: error: ‘u32’ undeclared here (not in a function) 463 | { "DMA_BUF_SET_NAME_A", DMA_BUF_SET_NAME_A, -1, -1 }, // linux/dma-buf.h | ^~~~~~~~~~~~~~~~~~ ioctls_list.c:464:29: error: ‘u64’ undeclared here (not in a function) 464 | { "DMA_BUF_SET_NAME_B", DMA_BUF_SET_NAME_B, -1, -1 }, // linux/dma-buf.h | ^~~~~~~~~~~~~~~~~~ The issue was initially reported here[1]. [1]: https://github.com/jerome-pouiller/ioctl/pull/14
Showing the changes to include/uapi (1 of 1 file). Show all
Unified · Split
| @@ -92,7 +92,7 @@ struct dma_buf_sync { · 91 unmodified lines | |||
| 92 | * between them in actual uapi, they're just different numbers. | 92 | * between them in actual uapi, they're just different numbers. |
| 93 | */ | 93 | */ |
| 94 | #define DMA_BUF_SET_NAME _IOW(DMA_BUF_BASE, 1, const char *) | 94 | #define DMA_BUF_SET_NAME _IOW(DMA_BUF_BASE, 1, const char *) |
| 95 | #define DMA_BUF_SET_NAME_A _IOW(DMA_BUF_BASE, 1, u32) | 95 | #define DMA_BUF_SET_NAME_A _IOW(DMA_BUF_BASE, 1, __u32) |
| 96 | #define DMA_BUF_SET_NAME_B _IOW(DMA_BUF_BASE, 1, u64) | 96 | #define DMA_BUF_SET_NAME_B _IOW(DMA_BUF_BASE, 1, __u64) |
| 97 | 97 | ||
| 98 | #endif | 98 | #endif |