* [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files
@ 2015-10-15 5:55 Mikko Rapeli
2015-10-15 5:55 ` [PATCH v4 01/79] headers_install.sh: enhance error handling Mikko Rapeli
` (80 more replies)
0 siblings, 81 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:55 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli
v4:
tried to fix v03 review findings
tried to fix all hack patches
v3:
https://lkml.org/lkml/2015/5/30/96
tried to fix all v2 review findings
tried to guess how to fix a few more issue
with a few hacks, 0 files fail and 760 files pass the compile test on 32bit x86
v2:
https://lkml.org/lkml/2015/2/16/521
added cross compiler support with CROSS_COMPILE,
detecting libc and GCC headers from compiler,
more header file fixes
v1:
https://lkml.org/lkml/2014/8/21/665
Users of kernel header files would be happier if they did not contain
kernel specific parts and would contain #include statements for all
other header files that they depend on, and in general would compile.
This patch set introduces a compile test for headers exported to userspace
and then fixes many of the userspace header compilation failures.
Changes are also available in headers_test_v04 branch at github:
https://github.com/mcfrisk/linux/tree/headers_test_v04
Here's how to run the userspace compile tests:
$ make headers_install && cd usr/include && \
../../scripts/headers_compile_test.sh
Additionally tested an allyesconfig compilation on i686, x86_64 and ARMEL.
For x86 and ARMEL all header file compile errors in userspace are
fixed with this series and Ingo Molnars x86/headers branch changes from
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git .
Remaining task is to fix all other archs.
If these changes are merged, it becomes possible to run abi-compliance-checker
tool https://lvc.github.io/abi-compliance-checker/ to detect API and ABI
breakages from the uapi headers.
Once all archs have completely compiling uapi headers, I would add this test
to 'make headers_check' build target to prevent regressions.
Mikko Rapeli (79):
headers_install.sh: enhance error handling
scripts/headers_compile_test.sh: compile test script for exported
headers
drm.h: use __kernel_size_t instead of size_t
drm_mode.h: use __u32 and __u64 from linux/types.h
exynos_drm.h: use __u64 from linux/types.h
nouveau_drm.h: use __u32 and __u64 from linux/types.h
radeon_drm.h: use __u32 and __u64 from linux/types.h
r128_drm.h: include drm/drm.h
via_drm.h: don't include non-existing via_drmclient.h
via_drm.h: move struct via_file_private definition to
drivers/gpu/drm/via/via_drv.h
savage_drm.h: include <drm/drm.h>
include/uapi/drm/sis_drm.h: move sis_file_private to
drivers/gpu/drm/sis/sis_drv.h
drm/i810_drm.h: include drm/drm.h
include/uapi/drm/vmwgfx_drm.h: use __s32, __u32 and __u64 from
linux/types.h
include/uapi/drm/qxl_drm.h: use __s32, __u32 and __u64 from
linux/types.h
include/uapi/linux/agpgart.h: include stdlib.h in userspace
include/uapi/sound/emu10k1.h: added EMU10K1 version of DECLARE_BITMAP
macro
dm-log-userspace.h: use __u32, __s32 and __u64 from linux/types.h
hsi_char.h: use __u32 from linux/types.h
include/uapi/linux/hsi/cs-protocol.h: include linux/time.h
ebtables.h: use __u64 from linux/types.h
cld.h: use __u8, __u16, __s16, __u32 and __s64 from linux/types.h
rds.h: use __u8, __u16, __s16, __u32 and __s64 from linux/types.h
sctp.h: use __u8 and __u32 from linux/types.h
scsi_bsg_fc.h: use __u8, __u32 and __u64 from linux/types.h
scsi_netlink.h: use __u8, __u16 and __u64 from linux/types.h
scsi_netlink_fc.h: use __u16, __u32 and __u64 from linux/types.h
hdspm.h: use __u8, __u32 and __u64 from linux/types.h instead of
stdint.h
gntalloc.h: use __u16, __u32 and __u64 from linux/types.h
gntdev.h: use __u32 and __u64 from linux/types.h
include/uapi/linux/sysctl.h: use __kernel_size_t instead of size_t
include/uapi/asm-generic/ipcbuf.h: include linux/posix_types.h
include/uapi/asm-generic/msgbuf.h: include asm/ipcbuf.h
include/uapi/asm-generic/shmbuf.h: include fixes
asm-generic/sembuf.h: include asm/posix_types.h and asm/ipcbuf.h
include/uapi/asm-generic/signal.h: use __kernel_size_t instead of
size_t
include/uapi/linux/socket.h: include sys/socket.h in userspace
include/uapi/linux/rds.h: include linux/socket.h and linux/types.h
include/uapi/linux/if_pppox.h: include linux/if.h
include/uapi/linux/if_tunnel.h: include linux/if.h, linux/ip.h and
linux/in6.h
include/uapi/linux/ipv6_route.h: include linux/in6.h
include/uapi/linux/ipv6_route.h: include linux/in6.h
include/uapi/linux/if_pppol2tp.h: include linux/in.h and linux/in6.h
include/uapi/linux/if_pppox.h: include linux/in.h and linux/in6.h
linux/if.h linux/hdlc/ioctl.h: move IFNAMSIZ definition to
hdlc/ioctl.h
include/uapi/linux/packet_diag.h: include linux/netdevice.h
include/uapi/linux/llc.h: include linux/if.h
include/uapi/linux/mqueue.h: include linux/types.h
include/uapi/linux/mroute.h: include linux/in.h
include/uapi/linux/dlm_netlink.h: include linux/dlmconstants.h
include/uapi/linux/ip6_tunnel.h: include linux/if.h and linux/in6.h
include/uapi/netfilter/*.h: fix include files for compilation
include/uapi/linux/errqueue.h: include linux/time.h
include/uapi/asm-generic/ucontext.h: include asm/signal.h and
asm/sigcontext.h
arch/x86/include/uapi/asm/signal.h: use __kernel_size_t instead of
size_t
include/uapi/linux/auto_fs.h: include linux/limits.h
include/uapi/linux/openvswitch.h: use __u32 from linux/types.h
include/uapi/linux/target_core_user.h: use __u8, __u16, __u32 and
__u64 from linux/types.h
include/uapi/linux/omapfb.h: use __kernel_size_t instead of size_t
include/uapi/linux/atm_zatm.h: include linux/time.h
include/uapi/linux/scc.h: include linux/sockios.h
include/uapi/linux/btrfs.h: define NULL
include/uapi/linux/kexec.h: use __kernel_size_t instead of size_t
include/uapi/linux/reiserfs_xattr.h: use __kernel_size_t instead of
size_t
include/uapi/linux/patchkey.h: change #error to #warning if file
included directly
include/uapi/linux/coda.h: use __kernel_pid_t and add u_short etc
definitions for userspace
include/uapi/linux/android/binder.h: use __kernel_pid_t and
__kernel_uid_t
arch/x86/include/uapi/asm/sembuf.h: include linux/types.h and
linux/ipc.h
include/uapi/linux/dvb/video.h: remove stdint.h include
include/uapi/mtd/mtd-user.h: remove stdint.h include
include/uapi/linux/fuse.h: use linux/types.h also in userspace
include/linux/ipmi-fru.h: use linux/types.h instead of stdint.h
include/linux/sdb.h: use linux/types.h types instead of stdint.h
include/linux/xz.h: use linux/types.h types instead of stdint.h
include/uapi/xen/privcmd.h: fix compilation in userspace
coda_psdev.h: move upc_req definition from uapi to kernel side headers
include/uapi/linux/elfcore.h: remove non-compiling userspace parts
include/uapi/linux/errqueue.h: include time.h in userspace
arch/arm/include/uapi/asm/signal.h: use __kernel_size_t instead of
size_t
arch/arm/include/asm/xen/interface.h | 2 +-
arch/arm/include/uapi/asm/signal.h | 2 +-
arch/x86/include/uapi/asm/sembuf.h | 3 +
arch/x86/include/uapi/asm/signal.h | 2 +-
drivers/gpu/drm/sis/sis_drv.h | 4 +
drivers/gpu/drm/via/via_drv.h | 4 +
include/linux/coda_psdev.h | 11 +
include/linux/ipmi-fru.h | 31 +-
include/linux/sdb.h | 62 ++-
include/linux/xz.h | 11 +-
include/uapi/asm-generic/ipcbuf.h | 2 +
include/uapi/asm-generic/msgbuf.h | 2 +
include/uapi/asm-generic/sembuf.h | 2 +
include/uapi/asm-generic/shmbuf.h | 4 +-
include/uapi/asm-generic/signal.h | 2 +-
include/uapi/asm-generic/ucontext.h | 3 +
include/uapi/drm/drm.h | 9 +-
include/uapi/drm/drm_mode.h | 16 +-
include/uapi/drm/exynos_drm.h | 6 +-
include/uapi/drm/i810_drm.h | 2 +
include/uapi/drm/nouveau_drm.h | 86 ++--
include/uapi/drm/qxl_drm.h | 74 ++--
include/uapi/drm/r128_drm.h | 2 +
include/uapi/drm/radeon_drm.h | 128 +++---
include/uapi/drm/savage_drm.h | 2 +
include/uapi/drm/sis_drm.h | 4 -
include/uapi/drm/via_drm.h | 7 -
include/uapi/drm/vmwgfx_drm.h | 264 ++++++-------
include/uapi/linux/agpgart.h | 1 +
include/uapi/linux/android/binder.h | 4 +-
include/uapi/linux/atm_zatm.h | 1 +
include/uapi/linux/auto_fs.h | 1 +
include/uapi/linux/btrfs.h | 6 +
include/uapi/linux/coda.h | 11 +-
include/uapi/linux/coda_psdev.h | 13 -
include/uapi/linux/dlm_netlink.h | 1 +
include/uapi/linux/dm-log-userspace.h | 43 +-
include/uapi/linux/dvb/video.h | 1 -
include/uapi/linux/elfcore.h | 21 +-
include/uapi/linux/errqueue.h | 6 +
include/uapi/linux/fuse.h | 440 ++++++++++-----------
include/uapi/linux/hdlc/ioctl.h | 1 +
include/uapi/linux/hsi/cs-protocol.h | 1 +
include/uapi/linux/hsi/hsi_char.h | 17 +-
include/uapi/linux/if.h | 6 +-
include/uapi/linux/if_pppol2tp.h | 3 +-
include/uapi/linux/if_pppox.h | 3 +
include/uapi/linux/if_tunnel.h | 3 +
include/uapi/linux/ip6_tunnel.h | 2 +
include/uapi/linux/ipv6_route.h | 1 +
include/uapi/linux/kexec.h | 4 +-
include/uapi/linux/llc.h | 1 +
include/uapi/linux/mqueue.h | 2 +
include/uapi/linux/mroute.h | 1 +
include/uapi/linux/mroute6.h | 1 +
include/uapi/linux/netfilter/ipset/ip_set_bitmap.h | 2 +
include/uapi/linux/netfilter/ipset/ip_set_hash.h | 2 +
include/uapi/linux/netfilter/ipset/ip_set_list.h | 2 +
.../linux/netfilter/nf_conntrack_tuple_common.h | 3 +
include/uapi/linux/netfilter/xt_HMARK.h | 1 +
include/uapi/linux/netfilter/xt_RATEEST.h | 1 +
include/uapi/linux/netfilter/xt_TEE.h | 2 +
include/uapi/linux/netfilter/xt_TPROXY.h | 1 +
include/uapi/linux/netfilter/xt_hashlimit.h | 1 +
include/uapi/linux/netfilter/xt_ipvs.h | 1 +
include/uapi/linux/netfilter/xt_mac.h | 2 +
include/uapi/linux/netfilter/xt_osf.h | 2 +
include/uapi/linux/netfilter/xt_physdev.h | 2 +-
include/uapi/linux/netfilter/xt_policy.h | 2 +
include/uapi/linux/netfilter/xt_rateest.h | 1 +
include/uapi/linux/netfilter/xt_recent.h | 1 +
include/uapi/linux/netfilter/xt_sctp.h | 12 +-
include/uapi/linux/netfilter_arp/arp_tables.h | 1 +
include/uapi/linux/netfilter_bridge.h | 1 +
include/uapi/linux/netfilter_bridge/ebt_arp.h | 1 +
include/uapi/linux/netfilter_bridge/ebt_arpreply.h | 2 +
include/uapi/linux/netfilter_bridge/ebt_ip6.h | 1 +
include/uapi/linux/netfilter_bridge/ebt_nat.h | 2 +
include/uapi/linux/netfilter_bridge/ebtables.h | 6 +-
include/uapi/linux/netfilter_ipv4/ip_tables.h | 1 +
include/uapi/linux/netfilter_ipv6/ip6_tables.h | 1 +
include/uapi/linux/netfilter_ipv6/ip6t_rt.h | 2 +-
include/uapi/linux/nfsd/cld.h | 14 +-
include/uapi/linux/omapfb.h | 2 +-
include/uapi/linux/openvswitch.h | 4 +-
include/uapi/linux/packet_diag.h | 1 +
include/uapi/linux/patchkey.h | 2 +-
include/uapi/linux/rds.h | 103 ++---
include/uapi/linux/reiserfs_xattr.h | 2 +-
include/uapi/linux/scc.h | 1 +
include/uapi/linux/sctp.h | 8 +-
include/uapi/linux/socket.h | 4 +
include/uapi/linux/sysctl.h | 4 +-
include/uapi/linux/target_core_user.h | 22 +-
include/uapi/mtd/mtd-user.h | 2 -
include/uapi/scsi/scsi_bsg_fc.h | 54 +--
include/uapi/scsi/scsi_netlink.h | 22 +-
include/uapi/scsi/scsi_netlink_fc.h | 16 +-
include/uapi/sound/emu10k1.h | 14 +-
include/uapi/sound/hdspm.h | 40 +-
include/uapi/xen/gntalloc.h | 22 +-
include/uapi/xen/gntdev.h | 34 +-
include/uapi/xen/privcmd.h | 14 +-
scripts/headers_compile_test.sh | 143 +++++++
scripts/headers_install.sh | 14 +-
105 files changed, 1096 insertions(+), 844 deletions(-)
create mode 100755 scripts/headers_compile_test.sh
--
2.5.0
^ permalink raw reply [flat|nested] 206+ messages in thread
* [PATCH v4 01/79] headers_install.sh: enhance error handling
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
@ 2015-10-15 5:55 ` Mikko Rapeli
2015-10-15 5:55 ` [PATCH v4 02/79] scripts/headers_compile_test.sh: compile test script for exported headers Mikko Rapeli
` (79 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:55 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli
Exit with error if using undefined variables or if any sub command fails
with error return value. unidef needs special handling since but this can
be done without the trap. Enables exaniming intermediate files if some
commands failed.
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
| 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
--git a/scripts/headers_install.sh b/scripts/headers_install.sh
index fdebd66..fe22807 100755
--- a/scripts/headers_install.sh
+++ b/scripts/headers_install.sh
@@ -1,4 +1,6 @@
#!/bin/sh
+set -e
+set -u
if [ $# -lt 2 ]
then
@@ -26,7 +28,6 @@ shift
# Iterate through files listed on command line
FILE=
-trap 'rm -f "$OUTDIR/$FILE" "$OUTDIR/$FILE.sed"' EXIT
for i in "$@"
do
FILE="$(basename "$i")"
@@ -37,10 +38,13 @@ do
-e 's/(^|[^a-zA-Z0-9])__packed([^a-zA-Z0-9_]|$)/\1__attribute__((packed))\2/g' \
-e 's/(^|[ \t(])(inline|asm|volatile)([ \t(]|$)/\1__\2__\3/g' \
-e 's@#(ifndef|define|endif[ \t]*/[*])[ \t]*_UAPI@#\1 @' \
- "$SRCDIR/$i" > "$OUTDIR/$FILE.sed" || exit 1
+ "$SRCDIR/$i" > "$OUTDIR/$FILE.sed" || \
+ ( rm -f "$OUTDIR/$FILE.sed" ; exit 1 )
scripts/unifdef -U__KERNEL__ -D__EXPORTED_HEADERS__ "$OUTDIR/$FILE.sed" \
- > "$OUTDIR/$FILE"
- [ $? -gt 1 ] && exit 1
+ > "$OUTDIR/$FILE" || \
+ ( if [ $? -gt 1 ]; then \
+ rm -f "$OUTDIR/$FILE" "$OUTDIR/$FILE.sed" ; \
+ exit 1 ; \
+ fi )
rm -f "$OUTDIR/$FILE.sed"
done
-trap - EXIT
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 02/79] scripts/headers_compile_test.sh: compile test script for exported headers
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
2015-10-15 5:55 ` [PATCH v4 01/79] headers_install.sh: enhance error handling Mikko Rapeli
@ 2015-10-15 5:55 ` Mikko Rapeli
2015-10-15 7:17 ` Alexander Stein
2015-10-15 5:55 ` [PATCH v4 03/79] drm.h: use __kernel_size_t instead of size_t Mikko Rapeli
` (78 subsequent siblings)
80 siblings, 1 reply; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:55 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli
Users of kernel header files would be happier if they did not contain
kernel specific parts and would contain #include statements for all
other header files that they depend on, and in general would compile.
For each header file exported to userspace, this script creates
a simple .c file which just includes the header file. Then it
tries to compile it together with minimal header files from GCC
and libc, and reports results.
Default libc and GCC header file locations are parsed from compiler
configuration.
Kernel headers depend on GCC headers so their path is included in
the test compiler command line.
Some gcc and kernel headers depend on libc headers which are made available
by copying from the compiler default location to a temporary location and
removing possibly existing kernel headers from this directory. This is a bit
of a hack but seems to work in multiple environments.
Tested natively on:
Debian unstable, i586-linux-gnu and gcc 4.9.2
Raspbian Wheezy, arm-linux-gnueabihf and gcc 4.6.3
Ubuntu 12.04 LTS, x86_64-linux-gnu and gcc 4.6.3
Tested cross compilation using standard CROSS_COMPILE=/path/to/gcc with:
arm-linux-gnueabihf-gcc (crosstool-NG linaro-1.13.1-4.9-2014.09 - Linaro GCC 4.9-2014.09) 4.9.2 20140904 (prerelease)
Execute the script in the directory where kernel header files are installed.
For example:
$ make headers_install
$ cd usr/include
$ ../../scripts/headers_compile_test.sh
Example statistics from 3.18.4 kernel:
130 files failed the compile test.
609 files passed the compile test.
Example error types from 3.18.4 kernel:
$ ../../scripts/headers_compile_test.sh 2>&1 | \
grep error: | sed -e 's/.*error://g' | sort | uniq -c | sort -rn
352 unknown type name ‘uint32_t’
134 unknown type name ‘uint64_t’
103 unknown type name ‘size_t’
43 unknown type name ‘__kernel_ulong_t’
38 unknown type name ‘uint8_t’
24 unknown type name ‘int32_t’
22 field ‘addr’ has incomplete type
18 field ‘tstamp’ has incomplete type
16 unknown type name ‘__kernel_time_t’
16 field ‘in’ has incomplete type
16 field ‘in6’ has incomplete type
14 unknown type name ‘__be16’
13 ‘IFNAMSIZ’ undeclared here (not in a function)
12 unknown type name ‘uint16_t’
9 field ‘ifru_netmask’ has incomplete type
9 field ‘ifru_hwaddr’ has incomplete type
9 field ‘ifru_dstaddr’ has incomplete type
9 field ‘ifru_broadaddr’ has incomplete type
9 field ‘ifru_addr’ has incomplete type
8 unknown type name ‘__kernel_pid_t’
7 unknown type name ‘u_short’
7 unknown type name ‘pid_t’
6 invalid application of ‘sizeof’ to incomplete type ‘struct timespec’
6 field ‘src’ has incomplete type
6 field ‘audio_tstamp’ has incomplete type
6 array type has incomplete element type
5 unknown type name ‘__kernel_long_t’
5 requested alignment is not an integer constant
5 field ‘smsk’ has incomplete type
4 unknown type name ‘__kernel_uid32_t’
4 unknown type name ‘__kernel_gid32_t’
4 ‘ETH_ALEN’ undeclared here (not in a function)
3 unknown type name ‘int64_t’
3 unknown type name ‘caddr_t’
3 ‘IPSET_ERR_TYPE_SPECIFIC’ undeclared here (not in a function)
3 field ‘trigger_tstamp’ has incomplete type
3 field ‘src_addr’ has incomplete type
3 field ‘sin_addr’ has incomplete type
3 field ‘laddr’ has incomplete type
3 field ‘id’ has incomplete type
3 field ‘dmsk’ has incomplete type
3 field ‘bssid’ has incomplete type
3 expected specifier-qualifier-list before ‘uint64_t’
2 unknown type name ‘u_long’
2 unknown type name ‘stack_t’
2 unknown type name ‘sigset_t’
2 unknown type name ‘sa_family_t’
2 unknown type name ‘__kernel_mode_t’
2 unknown type name ‘__kernel_key_t’
2 unknown type name ‘elf_gregset_t’
2 unknown type name ‘bool’
2 ‘uint64_t’ undeclared here (not in a function)
2 ‘true’ undeclared (first use in this function)
2 ‘NAME_MAX’ undeclared here (not in a function)
2 ‘__kernel_mode_t’ undeclared here (not in a function)
2 invalid application of ‘sizeof’ to incomplete type ‘struct sockaddr’
2 field ‘uc_mcontext’ has incomplete type
2 field ‘tmsk’ has incomplete type
2 field ‘tgt’ has incomplete type
2 field ‘shm_perm’ has incomplete type
2 field ‘sem_perm’ has incomplete type
2 field ‘raddr’ has incomplete type
2 field ‘msg_perm’ has incomplete type
2 field ‘grp’ has incomplete type
2 field ‘dst’ has incomplete type
2 field ‘dst_addr’ has incomplete type
2 field ‘arp_pa’ has incomplete type
2 field ‘arp_netmask’ has incomplete type
2 field ‘arp_ha’ has incomplete type
2 ‘false’ undeclared (first use in this function)
1 xen/interface/xen.h: No such file or directory
1 via_drmclient.h: No such file or directory
1 unknown type name ‘wait_queue_head_t’
1 unknown type name ‘snd_seq_client_type_t’
1 unknown type name ‘int16_t’
1 unknown type name ‘ino_t’
1 unknown type name ‘elf_greg_t’
1 unknown type name ‘elf_fpxregset_t’
1 unknown type name ‘elf_fpregset_t’
1 unknown type name ‘__be32’
1 ‘SIOCDEVPRIVATE’ undeclared here (not in a function)
1 ‘sa_family_t’ undeclared here (not in a function)
1 ‘NULL’ undeclared (first use in this function)
1 ‘MSG_FIN’ undeclared here (not in a function)
1 ‘MAX_IPOPTLEN’ undeclared here (not in a function)
1 ‘MAX_ADDR_LEN’ undeclared here (not in a function)
1 ‘IFHWADDRLEN’ undeclared here (not in a function)
1 field ‘vmask’ has incomplete type
1 field ‘vifc_rmt_addr’ has incomplete type
1 field ‘vifc_lcl_addr’ has incomplete type
1 field ‘vaddr’ has incomplete type
1 field ‘uc_chain’ has incomplete type
1 field ‘tgt_ip’ has incomplete type
1 field ‘tcp’ has incomplete type
1 field ‘sw_reserved’ has incomplete type
1 field ‘sspp_addr’ has incomplete type
1 field ‘ssp_addr’ has incomplete type
1 field ‘src_mask’ has incomplete type
1 field ‘src_ip’ has incomplete type
1 field ‘spt_address’ has incomplete type
1 field ‘spp_address’ has incomplete type
1 field ‘spinfo_address’ has incomplete type
1 field ‘spc_aaddr’ has incomplete type
1 field ‘sas_obs_rto_ipaddr’ has incomplete type
1 field ‘saddr’ has incomplete type
1 field ‘rtmsg_src’ has incomplete type
1 field ‘rtmsg_gateway’ has incomplete type
1 field ‘rtmsg_dst’ has incomplete type
1 field ‘rt_genmask’ has incomplete type
1 field ‘rt_gateway’ has incomplete type
1 field ‘rt_dst’ has incomplete type
1 field ‘real’ has incomplete type
1 field ‘prefix’ has incomplete type
1 field ‘obj_list’ has incomplete type
1 field ‘mfcc_origin’ has incomplete type
1 field ‘mfcc_mcastgrp’ has incomplete type
1 field ‘mf6cc_origin’ has incomplete type
1 field ‘mf6cc_mcastgrp’ has incomplete type
1 field ‘mask’ has incomplete type
1 field ‘ival2’ has incomplete type
1 field ‘ival1’ has incomplete type
1 field ‘iph’ has incomplete type
1 field ‘ip’ has incomplete type
1 field ‘im_src’ has incomplete type
1 field ‘im_dst’ has incomplete type
1 field ‘im6_src’ has incomplete type
1 field ‘im6_dst’ has incomplete type
1 field ‘gw’ has incomplete type
1 field ‘expected’ has incomplete type
1 field ‘dst_mask’ has incomplete type
1 field ‘dest_addr’ has incomplete type
1 field ‘daddr’ has incomplete type
1 field ‘ap_addr’ has incomplete type
1 field ‘a6’ has incomplete type
1 field ‘a4’ has incomplete type
1 expected specifier-qualifier-list before ‘DECLARE_BITMAP’
1 expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘snd_seq_client_type_t’
1 #error "patchkey.h included directly"
1 ‘DLM_RESNAME_MAXLEN’ undeclared here (not in a function)
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
| 143 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 143 insertions(+)
create mode 100755 scripts/headers_compile_test.sh
--git a/scripts/headers_compile_test.sh b/scripts/headers_compile_test.sh
new file mode 100755
index 0000000..9a73945
--- /dev/null
+++ b/scripts/headers_compile_test.sh
@@ -0,0 +1,143 @@
+#!/bin/bash
+# bash due to arithmetics and pipefail
+set -euo pipefail
+
+# Debugging
+#set -x
+
+echo Simple compile test for header files meant for userspace.
+
+# sanity test
+if [ ! -d ./linux ]; then
+ echo Sanity check error: ./linux directory not found
+ echo Should be called in usr/include after \'make headers_install\'.
+ echo Returns number of failed files, 0 if none.
+ exit 1
+fi
+
+# Support CC variable for compiler and ccache, and cross compiling.
+# CC is used without quotes to support CC="ccache gcc".
+set +u
+if [ "$CC"foobar == "foobar" ]; then
+ CC=cc
+fi
+
+if [ "$CROSS_COMPILE"foobar != "foobar" ]; then
+ # Using gcc name since some cross compiler tool chains don't provide
+ # the cc symlink
+ CC="$CROSS_COMPILE"gcc
+fi
+set -u
+
+# Kernel headers refer to some gcc and libc headers so make them available.
+set +u
+if [ "$ARCH_TRIPLET"foobar == "foobar" ]; then
+ # Taking triplet from gcc/cpp
+ ARCH_TRIPLET="$( $CC -v -x c -E - < /dev/null 2>&1 | \
+ grep Target | sed -e 's/Target: //' )"
+fi
+
+if [ "$LIBC"foobar == "foobar" ]; then
+ # trying to grep libc includes from gcc/cpp defaults
+ _TEMP="$( $CC -v -x c -E - < /dev/null 2>&1 | \
+ sed -n -e '/^#include <...> search starts here:$/,/^End of search list.$/{//!p}' | \
+ sed -e 's/^\ \//\//g' | \
+ grep '/usr/include' )"
+
+ # sanity check and prepare LIBC dirs
+ for d in $_TEMP; do
+ if [ ! -d "$d" ]; then
+ echo "$d not a directory"
+ exit 1
+ fi
+ LIBC="$LIBC $d"
+ done
+fi
+set -u
+
+# Copy libc include files to temp directory for the tests.
+
+COMPILE_TEST_INC=../headers_compile_test_include
+rm -rf "$COMPILE_TEST_INC"
+mkdir -p "$COMPILE_TEST_INC"
+
+for d in $LIBC; do
+ # check if last part of dir is the arch triplet, cross compile paths
+ # can have it also elsewhere so just the last one counts.
+ if !( echo "$d" | egrep "$ARCH_TRIPLET$" > /dev/null ); then
+ # hopefully just main libc dir, e.g. /usr/include
+ cp -a "$d"/* "$COMPILE_TEST_INC"/
+ elif ( echo "$d" | egrep "$ARCH_TRIPLET$" > /dev/null ); then
+ # hopefully the arch specific dir, e.g. /usr/include/x86_64-linux-gnu
+ cp -ar "$d"/* "$COMPILE_TEST_INC/"
+ else
+ echo "$d unexpected, bailing out"
+ exit 1
+ fi
+done
+
+# Simulate libc headers without kernel headers by removing
+# all known kernel header dirs from the copied libc ones.
+# This seems to magically work.
+_KERNEL_DIRS="$( find . -type d | grep -v '^\.$' )"
+( cd "$COMPILE_TEST_INC" && rm -rf $_KERNEL_DIRS )
+
+# GCC headers
+set +u
+if [ "$GCC_INC"foobar == "foobar" ]; then
+ # Take from $CC default system include paths, filter out
+ # /usr/local/include and /usr/include stuff first, then try to match
+ # for gcc.
+ _TEMP="$( $CC -v -x c -E - < /dev/null 2>&1 | \
+ sed -n -e '/^#include <...> search starts here:$/,/^End of search list.$/{//!p}' | \
+ sed -e 's/^\ \//\//g' | \
+ egrep -v '/usr/local/include' | \
+ egrep -v '/usr/include' | \
+ grep gcc | \
+ xargs )"
+
+ # merge and prepare for use with $CC
+ for d in $_TEMP; do
+ # sanity test
+ if [ ! -d "$d" ]; then
+ echo "$d: is not a directory"
+ exit 1
+ fi
+ GCC_INC="$GCC_INC -I $d"
+ done
+fi
+set -u
+
+# For each header file, create a .c which includes the header file
+# and try to compile it using only current directory for searching other
+# included header files.
+_FAILED=0
+_PASSED=0
+for f in $( find . -name "*\.h" | xargs ); do
+ _FAIL=0
+ CFILE="$( echo "$( dirname "$f" )"/"$( basename "$f" .h )".c )"
+
+ # create .c file
+ echo "#include <"$( echo "$f" | sed -e 's|^.\/||' )">" \
+ > "$(dirname "$f")"/"$(basename "$f" .h)".c
+
+ # compile test, CC not quoted to support ccache
+ echo $CC -Wall -c -nostdinc $GCC_INC -I . -I "$COMPILE_TEST_INC" -I "$COMPILE_TEST_INC/$ARCH_TRIPLET" "$CFILE"
+ $CC -Wall -c -nostdinc $GCC_INC -I . -I "$COMPILE_TEST_INC" -I "$COMPILE_TEST_INC/$ARCH_TRIPLET" "$CFILE" \
+ || _FAIL=1
+
+ # report errors
+ if [ "$_FAIL" -gt 0 ]; then
+ echo "FAILED: $f"
+ _FAILED="$(( $_FAILED + 1 ))"
+ else
+ echo "PASSED: $f"
+ _PASSED="$(( $_PASSED + 1))"
+ fi
+done
+
+echo Statistics:
+echo "$_FAILED files failed the compile test."
+echo "$_PASSED files passed the compile test."
+
+exit "$_FAILED"
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 03/79] drm.h: use __kernel_size_t instead of size_t
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
2015-10-15 5:55 ` [PATCH v4 01/79] headers_install.sh: enhance error handling Mikko Rapeli
2015-10-15 5:55 ` [PATCH v4 02/79] scripts/headers_compile_test.sh: compile test script for exported headers Mikko Rapeli
@ 2015-10-15 5:55 ` Mikko Rapeli
2015-10-15 5:55 ` [PATCH v4 04/79] drm_mode.h: use __u32 and __u64 from linux/types.h Mikko Rapeli
` (77 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:55 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, David Airlie, dri-devel, linux-api
Fall back to size_t for non Linux platforms.
Fixes userspace compilation error:
drm/drm.h:132:2: error: unknown type name ‘size_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/drm/drm.h | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/include/uapi/drm/drm.h b/include/uapi/drm/drm.h
index 3801584..b4e92eb 100644
--- a/include/uapi/drm/drm.h
+++ b/include/uapi/drm/drm.h
@@ -54,6 +54,7 @@ typedef int32_t __s32;
typedef uint32_t __u32;
typedef int64_t __s64;
typedef uint64_t __u64;
+typedef size_t __kernel_size_t;
typedef unsigned long drm_handle_t;
#endif
@@ -129,11 +130,11 @@ struct drm_version {
int version_major; /**< Major version */
int version_minor; /**< Minor version */
int version_patchlevel; /**< Patch level */
- size_t name_len; /**< Length of name buffer */
+ __kernel_size_t name_len; /**< Length of name buffer */
char __user *name; /**< Name of driver */
- size_t date_len; /**< Length of date buffer */
+ __kernel_size_t date_len; /**< Length of date buffer */
char __user *date; /**< User-space buffer to hold date */
- size_t desc_len; /**< Length of desc buffer */
+ __kernel_size_t desc_len; /**< Length of desc buffer */
char __user *desc; /**< User-space buffer to hold desc */
};
@@ -143,7 +144,7 @@ struct drm_version {
* \sa drmGetBusid() and drmSetBusId().
*/
struct drm_unique {
- size_t unique_len; /**< Length of unique */
+ __kernel_size_t unique_len; /**< Length of unique */
char __user *unique; /**< Unique name for driver instantiation */
};
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 04/79] drm_mode.h: use __u32 and __u64 from linux/types.h
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (2 preceding siblings ...)
2015-10-15 5:55 ` [PATCH v4 03/79] drm.h: use __kernel_size_t instead of size_t Mikko Rapeli
@ 2015-10-15 5:55 ` Mikko Rapeli
2015-10-15 13:32 ` Alex Deucher
2015-10-15 5:55 ` Mikko Rapeli
` (76 subsequent siblings)
80 siblings, 1 reply; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:55 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, David Airlie, dri-devel, linux-api
Fixes userspace compilation error:
drm/drm_mode.h:472:2: error: unknown type name ‘uint32_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/drm/drm_mode.h | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h
index 359107a..0ed8d9d 100644
--- a/include/uapi/drm/drm_mode.h
+++ b/include/uapi/drm/drm_mode.h
@@ -508,14 +508,14 @@ struct drm_mode_crtc_page_flip {
/* create a dumb scanout buffer */
struct drm_mode_create_dumb {
- uint32_t height;
- uint32_t width;
- uint32_t bpp;
- uint32_t flags;
+ __u32 height;
+ __u32 width;
+ __u32 bpp;
+ __u32 flags;
/* handle, pitch, size will be returned */
- uint32_t handle;
- uint32_t pitch;
- uint64_t size;
+ __u32 handle;
+ __u32 pitch;
+ __u64 size;
};
/* set up for mmap of a dumb scanout buffer */
@@ -532,7 +532,7 @@ struct drm_mode_map_dumb {
};
struct drm_mode_destroy_dumb {
- uint32_t handle;
+ __u32 handle;
};
/* page-flip flags are valid, plus: */
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 05/79] exynos_drm.h: use __u64 from linux/types.h
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
2015-10-15 5:55 ` [PATCH v4 01/79] headers_install.sh: enhance error handling Mikko Rapeli
@ 2015-10-15 5:55 ` Mikko Rapeli
2015-10-15 5:55 ` [PATCH v4 03/79] drm.h: use __kernel_size_t instead of size_t Mikko Rapeli
` (78 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:55 UTC (permalink / raw)
To: linux-kernel
Cc: mikko.rapeli, Inki Dae, Joonyoung Shim, Seung-Woo Kim,
Kyungmin Park, David Airlie, Kukjin Kim, Krzysztof Kozlowski,
dri-devel, linux-api, linux-arm-kernel, linux-samsung-soc
Fixes userspace compilation error:
drm/exynos_drm.h:30:2: error: unknown type name ‘uint64_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/drm/exynos_drm.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/include/uapi/drm/exynos_drm.h b/include/uapi/drm/exynos_drm.h
index 5575ed1..cf431b7 100644
--- a/include/uapi/drm/exynos_drm.h
+++ b/include/uapi/drm/exynos_drm.h
@@ -27,7 +27,7 @@
* - this handle will be set by gem module of kernel side.
*/
struct drm_exynos_gem_create {
- uint64_t size;
+ __u64 size;
unsigned int flags;
unsigned int handle;
};
@@ -44,7 +44,7 @@ struct drm_exynos_gem_create {
struct drm_exynos_gem_info {
unsigned int handle;
unsigned int flags;
- uint64_t size;
+ __u64 size;
};
/**
@@ -58,7 +58,7 @@ struct drm_exynos_gem_info {
struct drm_exynos_vidi_connection {
unsigned int connection;
unsigned int extensions;
- uint64_t edid;
+ __u64 edid;
};
/* memory type definitions. */
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 05/79] exynos_drm.h: use __u64 from linux/types.h
@ 2015-10-15 5:55 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:55 UTC (permalink / raw)
To: linux-kernel
Cc: Krzysztof Kozlowski, linux-samsung-soc, Joonyoung Shim,
David Airlie, mikko.rapeli, Seung-Woo Kim, dri-devel, Inki Dae,
Kyungmin Park, Kukjin Kim, linux-api, linux-arm-kernel
Fixes userspace compilation error:
drm/exynos_drm.h:30:2: error: unknown type name ‘uint64_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/drm/exynos_drm.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/include/uapi/drm/exynos_drm.h b/include/uapi/drm/exynos_drm.h
index 5575ed1..cf431b7 100644
--- a/include/uapi/drm/exynos_drm.h
+++ b/include/uapi/drm/exynos_drm.h
@@ -27,7 +27,7 @@
* - this handle will be set by gem module of kernel side.
*/
struct drm_exynos_gem_create {
- uint64_t size;
+ __u64 size;
unsigned int flags;
unsigned int handle;
};
@@ -44,7 +44,7 @@ struct drm_exynos_gem_create {
struct drm_exynos_gem_info {
unsigned int handle;
unsigned int flags;
- uint64_t size;
+ __u64 size;
};
/**
@@ -58,7 +58,7 @@ struct drm_exynos_gem_info {
struct drm_exynos_vidi_connection {
unsigned int connection;
unsigned int extensions;
- uint64_t edid;
+ __u64 edid;
};
/* memory type definitions. */
--
2.5.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 05/79] exynos_drm.h: use __u64 from linux/types.h
@ 2015-10-15 5:55 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:55 UTC (permalink / raw)
To: linux-arm-kernel
Fixes userspace compilation error:
drm/exynos_drm.h:30:2: error: unknown type name ?uint64_t?
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/drm/exynos_drm.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/include/uapi/drm/exynos_drm.h b/include/uapi/drm/exynos_drm.h
index 5575ed1..cf431b7 100644
--- a/include/uapi/drm/exynos_drm.h
+++ b/include/uapi/drm/exynos_drm.h
@@ -27,7 +27,7 @@
* - this handle will be set by gem module of kernel side.
*/
struct drm_exynos_gem_create {
- uint64_t size;
+ __u64 size;
unsigned int flags;
unsigned int handle;
};
@@ -44,7 +44,7 @@ struct drm_exynos_gem_create {
struct drm_exynos_gem_info {
unsigned int handle;
unsigned int flags;
- uint64_t size;
+ __u64 size;
};
/**
@@ -58,7 +58,7 @@ struct drm_exynos_gem_info {
struct drm_exynos_vidi_connection {
unsigned int connection;
unsigned int extensions;
- uint64_t edid;
+ __u64 edid;
};
/* memory type definitions. */
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 06/79] nouveau_drm.h: use __u32 and __u64 from linux/types.h
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (4 preceding siblings ...)
2015-10-15 5:55 ` Mikko Rapeli
@ 2015-10-15 5:55 ` Mikko Rapeli
2015-10-15 5:55 ` [PATCH v4 07/79] radeon_drm.h: " Mikko Rapeli
` (74 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:55 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, David Airlie, dri-devel, linux-api
Fixes userspace compilation errors like:
drm/nouveau_drm.h:41:2: error: unknown type name ‘uint32_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/drm/nouveau_drm.h | 86 +++++++++++++++++++++---------------------
1 file changed, 44 insertions(+), 42 deletions(-)
diff --git a/include/uapi/drm/nouveau_drm.h b/include/uapi/drm/nouveau_drm.h
index 5507eea..3a0a2f1 100644
--- a/include/uapi/drm/nouveau_drm.h
+++ b/include/uapi/drm/nouveau_drm.h
@@ -35,6 +35,8 @@
#define NOUVEAU_ABI16_DEVICE 0xdddddddd
#define NOUVEAU_ABI16_CHAN(n) (0xcccc0000 | (n))
+#include <drm/drm.h>
+
#define NOUVEAU_GEM_DOMAIN_CPU (1 << 0)
#define NOUVEAU_GEM_DOMAIN_VRAM (1 << 1)
#define NOUVEAU_GEM_DOMAIN_GART (1 << 2)
@@ -49,34 +51,34 @@
#define NOUVEAU_GEM_TILE_NONCONTIG 0x00000008
struct drm_nouveau_gem_info {
- uint32_t handle;
- uint32_t domain;
- uint64_t size;
- uint64_t offset;
- uint64_t map_handle;
- uint32_t tile_mode;
- uint32_t tile_flags;
+ __u32 handle;
+ __u32 domain;
+ __u64 size;
+ __u64 offset;
+ __u64 map_handle;
+ __u32 tile_mode;
+ __u32 tile_flags;
};
struct drm_nouveau_gem_new {
struct drm_nouveau_gem_info info;
- uint32_t channel_hint;
- uint32_t align;
+ __u32 channel_hint;
+ __u32 align;
};
#define NOUVEAU_GEM_MAX_BUFFERS 1024
struct drm_nouveau_gem_pushbuf_bo_presumed {
- uint32_t valid;
- uint32_t domain;
- uint64_t offset;
+ __u32 valid;
+ __u32 domain;
+ __u64 offset;
};
struct drm_nouveau_gem_pushbuf_bo {
- uint64_t user_priv;
- uint32_t handle;
- uint32_t read_domains;
- uint32_t write_domains;
- uint32_t valid_domains;
+ __u64 user_priv;
+ __u32 handle;
+ __u32 read_domains;
+ __u32 write_domains;
+ __u32 valid_domains;
struct drm_nouveau_gem_pushbuf_bo_presumed presumed;
};
@@ -85,46 +87,46 @@ struct drm_nouveau_gem_pushbuf_bo {
#define NOUVEAU_GEM_RELOC_OR (1 << 2)
#define NOUVEAU_GEM_MAX_RELOCS 1024
struct drm_nouveau_gem_pushbuf_reloc {
- uint32_t reloc_bo_index;
- uint32_t reloc_bo_offset;
- uint32_t bo_index;
- uint32_t flags;
- uint32_t data;
- uint32_t vor;
- uint32_t tor;
+ __u32 reloc_bo_index;
+ __u32 reloc_bo_offset;
+ __u32 bo_index;
+ __u32 flags;
+ __u32 data;
+ __u32 vor;
+ __u32 tor;
};
#define NOUVEAU_GEM_MAX_PUSH 512
struct drm_nouveau_gem_pushbuf_push {
- uint32_t bo_index;
- uint32_t pad;
- uint64_t offset;
- uint64_t length;
+ __u32 bo_index;
+ __u32 pad;
+ __u64 offset;
+ __u64 length;
};
struct drm_nouveau_gem_pushbuf {
- uint32_t channel;
- uint32_t nr_buffers;
- uint64_t buffers;
- uint32_t nr_relocs;
- uint32_t nr_push;
- uint64_t relocs;
- uint64_t push;
- uint32_t suffix0;
- uint32_t suffix1;
- uint64_t vram_available;
- uint64_t gart_available;
+ __u32 channel;
+ __u32 nr_buffers;
+ __u64 buffers;
+ __u32 nr_relocs;
+ __u32 nr_push;
+ __u64 relocs;
+ __u64 push;
+ __u32 suffix0;
+ __u32 suffix1;
+ __u64 vram_available;
+ __u64 gart_available;
};
#define NOUVEAU_GEM_CPU_PREP_NOWAIT 0x00000001
#define NOUVEAU_GEM_CPU_PREP_WRITE 0x00000004
struct drm_nouveau_gem_cpu_prep {
- uint32_t handle;
- uint32_t flags;
+ __u32 handle;
+ __u32 flags;
};
struct drm_nouveau_gem_cpu_fini {
- uint32_t handle;
+ __u32 handle;
};
#define DRM_NOUVEAU_GETPARAM 0x00 /* deprecated */
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 07/79] radeon_drm.h: use __u32 and __u64 from linux/types.h
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (5 preceding siblings ...)
2015-10-15 5:55 ` [PATCH v4 06/79] nouveau_drm.h: use __u32 and " Mikko Rapeli
@ 2015-10-15 5:55 ` Mikko Rapeli
2015-10-15 5:55 ` [PATCH v4 08/79] r128_drm.h: include drm/drm.h Mikko Rapeli
` (73 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:55 UTC (permalink / raw)
To: linux-kernel
Cc: mikko.rapeli, Alex Deucher, Christian König, David Airlie,
dri-devel, linux-api
Fixes userspace compiler error:
drm/radeon_drm.h:794:2: error: unknown type name ‘uint64_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/drm/radeon_drm.h | 128 +++++++++++++++++++++---------------------
1 file changed, 64 insertions(+), 64 deletions(-)
diff --git a/include/uapi/drm/radeon_drm.h b/include/uapi/drm/radeon_drm.h
index 01aa2a8..ccb9bcd 100644
--- a/include/uapi/drm/radeon_drm.h
+++ b/include/uapi/drm/radeon_drm.h
@@ -793,9 +793,9 @@ typedef struct drm_radeon_surface_free {
#define RADEON_GEM_DOMAIN_VRAM 0x4
struct drm_radeon_gem_info {
- uint64_t gart_size;
- uint64_t vram_size;
- uint64_t vram_visible;
+ __u64 gart_size;
+ __u64 vram_size;
+ __u64 vram_visible;
};
#define RADEON_GEM_NO_BACKING_STORE (1 << 0)
@@ -807,11 +807,11 @@ struct drm_radeon_gem_info {
#define RADEON_GEM_NO_CPU_ACCESS (1 << 4)
struct drm_radeon_gem_create {
- uint64_t size;
- uint64_t alignment;
- uint32_t handle;
- uint32_t initial_domain;
- uint32_t flags;
+ __u64 size;
+ __u64 alignment;
+ __u32 handle;
+ __u32 initial_domain;
+ __u32 flags;
};
/*
@@ -825,10 +825,10 @@ struct drm_radeon_gem_create {
#define RADEON_GEM_USERPTR_REGISTER (1 << 3)
struct drm_radeon_gem_userptr {
- uint64_t addr;
- uint64_t size;
- uint32_t flags;
- uint32_t handle;
+ __u64 addr;
+ __u64 size;
+ __u32 flags;
+ __u32 handle;
};
#define RADEON_TILING_MACRO 0x1
@@ -850,72 +850,72 @@ struct drm_radeon_gem_userptr {
#define RADEON_TILING_EG_STENCIL_TILE_SPLIT_MASK 0xf
struct drm_radeon_gem_set_tiling {
- uint32_t handle;
- uint32_t tiling_flags;
- uint32_t pitch;
+ __u32 handle;
+ __u32 tiling_flags;
+ __u32 pitch;
};
struct drm_radeon_gem_get_tiling {
- uint32_t handle;
- uint32_t tiling_flags;
- uint32_t pitch;
+ __u32 handle;
+ __u32 tiling_flags;
+ __u32 pitch;
};
struct drm_radeon_gem_mmap {
- uint32_t handle;
- uint32_t pad;
- uint64_t offset;
- uint64_t size;
- uint64_t addr_ptr;
+ __u32 handle;
+ __u32 pad;
+ __u64 offset;
+ __u64 size;
+ __u64 addr_ptr;
};
struct drm_radeon_gem_set_domain {
- uint32_t handle;
- uint32_t read_domains;
- uint32_t write_domain;
+ __u32 handle;
+ __u32 read_domains;
+ __u32 write_domain;
};
struct drm_radeon_gem_wait_idle {
- uint32_t handle;
- uint32_t pad;
+ __u32 handle;
+ __u32 pad;
};
struct drm_radeon_gem_busy {
- uint32_t handle;
- uint32_t domain;
+ __u32 handle;
+ __u32 domain;
};
struct drm_radeon_gem_pread {
/** Handle for the object being read. */
- uint32_t handle;
- uint32_t pad;
+ __u32 handle;
+ __u32 pad;
/** Offset into the object to read from */
- uint64_t offset;
+ __u64 offset;
/** Length of data to read */
- uint64_t size;
+ __u64 size;
/** Pointer to write the data into. */
/* void *, but pointers are not 32/64 compatible */
- uint64_t data_ptr;
+ __u64 data_ptr;
};
struct drm_radeon_gem_pwrite {
/** Handle for the object being written to. */
- uint32_t handle;
- uint32_t pad;
+ __u32 handle;
+ __u32 pad;
/** Offset into the object to write to */
- uint64_t offset;
+ __u64 offset;
/** Length of data to write */
- uint64_t size;
+ __u64 size;
/** Pointer to read the data from. */
/* void *, but pointers are not 32/64 compatible */
- uint64_t data_ptr;
+ __u64 data_ptr;
};
/* Sets or returns a value associated with a buffer. */
struct drm_radeon_gem_op {
- uint32_t handle; /* buffer */
- uint32_t op; /* RADEON_GEM_OP_* */
- uint64_t value; /* input or return value */
+ __u32 handle; /* buffer */
+ __u32 op; /* RADEON_GEM_OP_* */
+ __u64 value; /* input or return value */
};
#define RADEON_GEM_OP_GET_INITIAL_DOMAIN 0
@@ -935,11 +935,11 @@ struct drm_radeon_gem_op {
#define RADEON_VM_PAGE_SNOOPED (1 << 4)
struct drm_radeon_gem_va {
- uint32_t handle;
- uint32_t operation;
- uint32_t vm_id;
- uint32_t flags;
- uint64_t offset;
+ __u32 handle;
+ __u32 operation;
+ __u32 vm_id;
+ __u32 flags;
+ __u64 offset;
};
#define RADEON_CHUNK_ID_RELOCS 0x01
@@ -961,29 +961,29 @@ struct drm_radeon_gem_va {
/* 0 = normal, + = higher priority, - = lower priority */
struct drm_radeon_cs_chunk {
- uint32_t chunk_id;
- uint32_t length_dw;
- uint64_t chunk_data;
+ __u32 chunk_id;
+ __u32 length_dw;
+ __u64 chunk_data;
};
/* drm_radeon_cs_reloc.flags */
#define RADEON_RELOC_PRIO_MASK (0xf << 0)
struct drm_radeon_cs_reloc {
- uint32_t handle;
- uint32_t read_domains;
- uint32_t write_domain;
- uint32_t flags;
+ __u32 handle;
+ __u32 read_domains;
+ __u32 write_domain;
+ __u32 flags;
};
struct drm_radeon_cs {
- uint32_t num_chunks;
- uint32_t cs_id;
- /* this points to uint64_t * which point to cs chunks */
- uint64_t chunks;
+ __u32 num_chunks;
+ __u32 cs_id;
+ /* this points to __u64 * which point to cs chunks */
+ __u64 chunks;
/* updates to the limits after this CS ioctl */
- uint64_t gart_limit;
- uint64_t vram_limit;
+ __u64 gart_limit;
+ __u64 vram_limit;
};
#define RADEON_INFO_DEVICE_ID 0x00
@@ -1042,9 +1042,9 @@ struct drm_radeon_cs {
#define RADEON_INFO_GPU_RESET_COUNTER 0x26
struct drm_radeon_info {
- uint32_t request;
- uint32_t pad;
- uint64_t value;
+ __u32 request;
+ __u32 pad;
+ __u64 value;
};
/* Those correspond to the tile index to use, this is to explicitly state
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 08/79] r128_drm.h: include drm/drm.h
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (6 preceding siblings ...)
2015-10-15 5:55 ` [PATCH v4 07/79] radeon_drm.h: " Mikko Rapeli
@ 2015-10-15 5:55 ` Mikko Rapeli
2015-10-15 7:43 ` Daniel Vetter
2015-10-15 5:55 ` [PATCH v4 09/79] via_drm.h: don't include non-existing via_drmclient.h Mikko Rapeli
` (72 subsequent siblings)
80 siblings, 1 reply; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:55 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, David Airlie, dri-devel, linux-api
Fixes compile error:
drm/r128_drm.h:156:23: error: array type has incomplete element type
struct drm_clip_rect boxes[R128_NR_SAREA_CLIPRECTS];
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/drm/r128_drm.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/uapi/drm/r128_drm.h b/include/uapi/drm/r128_drm.h
index 8d8878b..76b0aa3 100644
--- a/include/uapi/drm/r128_drm.h
+++ b/include/uapi/drm/r128_drm.h
@@ -33,6 +33,8 @@
#ifndef __R128_DRM_H__
#define __R128_DRM_H__
+#include <drm/drm.h>
+
/* WARNING: If you change any of these defines, make sure to change the
* defines in the X server file (r128_sarea.h)
*/
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 09/79] via_drm.h: don't include non-existing via_drmclient.h
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (7 preceding siblings ...)
2015-10-15 5:55 ` [PATCH v4 08/79] r128_drm.h: include drm/drm.h Mikko Rapeli
@ 2015-10-15 5:55 ` Mikko Rapeli
2015-10-21 15:01 ` Emil Velikov
2015-10-15 5:55 ` [PATCH v4 10/79] via_drm.h: move struct via_file_private definition to drivers/gpu/drm/via/via_drv.h Mikko Rapeli
` (71 subsequent siblings)
80 siblings, 1 reply; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:55 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, David Airlie, dri-devel, linux-api
Fixes compiler error:
drm/via_drm.h:36:27: fatal error: via_drmclient.h: No such file or directory
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/drm/via_drm.h | 3 ---
1 file changed, 3 deletions(-)
diff --git a/include/uapi/drm/via_drm.h b/include/uapi/drm/via_drm.h
index 8b0533c..d19c0e2 100644
--- a/include/uapi/drm/via_drm.h
+++ b/include/uapi/drm/via_drm.h
@@ -33,9 +33,6 @@
#ifndef _VIA_DEFINES_
#define _VIA_DEFINES_
-#ifndef __KERNEL__
-#include "via_drmclient.h"
-#endif
#define VIA_NR_SAREA_CLIPRECTS 8
#define VIA_NR_XVMC_PORTS 10
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 10/79] via_drm.h: move struct via_file_private definition to drivers/gpu/drm/via/via_drv.h
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (8 preceding siblings ...)
2015-10-15 5:55 ` [PATCH v4 09/79] via_drm.h: don't include non-existing via_drmclient.h Mikko Rapeli
@ 2015-10-15 5:55 ` Mikko Rapeli
2015-10-21 14:36 ` Emil Velikov
2015-10-15 5:55 ` Mikko Rapeli
` (70 subsequent siblings)
80 siblings, 1 reply; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:55 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, David Airlie, dri-devel, linux-api
Fixes userspace compile error since list_head is not exported to userspace
headers.
Suggested by Emil Velikov <emil.l.velikov@gmail.com> at
https://lkml.org/lkml/2015/6/3/792
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
drivers/gpu/drm/via/via_drv.h | 4 ++++
include/uapi/drm/via_drm.h | 4 ----
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/via/via_drv.h b/drivers/gpu/drm/via/via_drv.h
index ef8c500..875e65a 100644
--- a/drivers/gpu/drm/via/via_drv.h
+++ b/drivers/gpu/drm/via/via_drv.h
@@ -102,6 +102,10 @@ typedef struct drm_via_private {
uint32_t dma_diff;
} drm_via_private_t;
+struct via_file_private {
+ struct list_head obj_list;
+};
+
enum via_family {
VIA_OTHER = 0, /* Baseline */
VIA_PRO_GROUP_A, /* Another video engine and DMA commands */
diff --git a/include/uapi/drm/via_drm.h b/include/uapi/drm/via_drm.h
index d19c0e2..c8c053a 100644
--- a/include/uapi/drm/via_drm.h
+++ b/include/uapi/drm/via_drm.h
@@ -271,8 +271,4 @@ typedef struct drm_via_dmablit {
drm_via_blitsync_t sync;
} drm_via_dmablit_t;
-struct via_file_private {
- struct list_head obj_list;
-};
-
#endif /* _VIA_DRM_H_ */
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 11/79] savage_drm.h: include <drm/drm.h>
@ 2015-10-15 5:55 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:55 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, David Airlie, dri-devel, linux-api
Fixes compiler error:
drm/savage_drm.h:50:24: error: array type has incomplete element type
struct drm_tex_region texList[SAVAGE_NR_TEX_HEAPS][SAVAGE_NR_TEX_REGIONS +
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/drm/savage_drm.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/uapi/drm/savage_drm.h b/include/uapi/drm/savage_drm.h
index 818d49b..9dc9dc1 100644
--- a/include/uapi/drm/savage_drm.h
+++ b/include/uapi/drm/savage_drm.h
@@ -26,6 +26,8 @@
#ifndef __SAVAGE_DRM_H__
#define __SAVAGE_DRM_H__
+#include <drm/drm.h>
+
#ifndef __SAVAGE_SAREA_DEFINES__
#define __SAVAGE_SAREA_DEFINES__
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 11/79] savage_drm.h: include <drm/drm.h>
@ 2015-10-15 5:55 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:55 UTC (permalink / raw)
To: linux-kernel-u79uwXL29TY76Z2rM5mHXA
Cc: mikko.rapeli-X3B1VOXEql0, David Airlie,
dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
linux-api-u79uwXL29TY76Z2rM5mHXA
Fixes compiler error:
drm/savage_drm.h:50:24: error: array type has incomplete element type
struct drm_tex_region texList[SAVAGE_NR_TEX_HEAPS][SAVAGE_NR_TEX_REGIONS +
Signed-off-by: Mikko Rapeli <mikko.rapeli-X3B1VOXEql0@public.gmane.org>
---
include/uapi/drm/savage_drm.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/uapi/drm/savage_drm.h b/include/uapi/drm/savage_drm.h
index 818d49b..9dc9dc1 100644
--- a/include/uapi/drm/savage_drm.h
+++ b/include/uapi/drm/savage_drm.h
@@ -26,6 +26,8 @@
#ifndef __SAVAGE_DRM_H__
#define __SAVAGE_DRM_H__
+#include <drm/drm.h>
+
#ifndef __SAVAGE_SAREA_DEFINES__
#define __SAVAGE_SAREA_DEFINES__
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 12/79] include/uapi/drm/sis_drm.h: move sis_file_private to drivers/gpu/drm/sis/sis_drv.h
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (10 preceding siblings ...)
2015-10-15 5:55 ` Mikko Rapeli
@ 2015-10-15 5:55 ` Mikko Rapeli
2015-10-21 14:39 ` Emil Velikov
2015-10-15 5:55 ` [PATCH v4 13/79] drm/i810_drm.h: include drm/drm.h Mikko Rapeli
` (68 subsequent siblings)
80 siblings, 1 reply; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:55 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, David Airlie, dri-devel, linux-api
Fixes userspace compile error:
drm/sis_drm.h:68:19: error: field ‘obj_list’ has incomplete type
struct list_head obj_list;
Suggested by Emil Velikov <emil.l.velikov@gmail.com> at
https://lkml.org/lkml/2015/6/3/792
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
drivers/gpu/drm/sis/sis_drv.h | 4 ++++
include/uapi/drm/sis_drm.h | 4 ----
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/sis/sis_drv.h b/drivers/gpu/drm/sis/sis_drv.h
index 16f972b..328f8a7 100644
--- a/drivers/gpu/drm/sis/sis_drv.h
+++ b/drivers/gpu/drm/sis/sis_drv.h
@@ -67,6 +67,10 @@ typedef struct drm_sis_private {
struct idr object_idr;
} drm_sis_private_t;
+struct sis_file_private {
+ struct list_head obj_list;
+};
+
extern int sis_idle(struct drm_device *dev);
extern void sis_reclaim_buffers_locked(struct drm_device *dev,
struct drm_file *file_priv);
diff --git a/include/uapi/drm/sis_drm.h b/include/uapi/drm/sis_drm.h
index df37632..374858c 100644
--- a/include/uapi/drm/sis_drm.h
+++ b/include/uapi/drm/sis_drm.h
@@ -64,8 +64,4 @@ typedef struct {
unsigned long offset, size;
} drm_sis_fb_t;
-struct sis_file_private {
- struct list_head obj_list;
-};
-
#endif /* __SIS_DRM_H__ */
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 13/79] drm/i810_drm.h: include drm/drm.h
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (11 preceding siblings ...)
2015-10-15 5:55 ` [PATCH v4 12/79] include/uapi/drm/sis_drm.h: move sis_file_private to drivers/gpu/drm/sis/sis_drv.h Mikko Rapeli
@ 2015-10-15 5:55 ` Mikko Rapeli
2015-10-15 7:44 ` Daniel Vetter
2015-10-15 5:55 ` [PATCH v4 14/79] include/uapi/drm/vmwgfx_drm.h: use __s32, __u32 and __u64 from linux/types.h Mikko Rapeli
` (67 subsequent siblings)
80 siblings, 1 reply; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:55 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, David Airlie, dri-devel, linux-api
Fixes userspace compilation error:
error: array type has incomplete element type
struct drm_clip_rect boxes[I810_NR_SAREA_CLIPRECTS];
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/drm/i810_drm.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/uapi/drm/i810_drm.h b/include/uapi/drm/i810_drm.h
index 7a10bb6..34736ef 100644
--- a/include/uapi/drm/i810_drm.h
+++ b/include/uapi/drm/i810_drm.h
@@ -1,6 +1,8 @@
#ifndef _I810_DRM_H_
#define _I810_DRM_H_
+#include <drm/drm.h>
+
/* WARNING: These defines must be the same as what the Xserver uses.
* if you change them, you must change the defines in the Xserver.
*/
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 14/79] include/uapi/drm/vmwgfx_drm.h: use __s32, __u32 and __u64 from linux/types.h
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (12 preceding siblings ...)
2015-10-15 5:55 ` [PATCH v4 13/79] drm/i810_drm.h: include drm/drm.h Mikko Rapeli
@ 2015-10-15 5:55 ` Mikko Rapeli
2015-10-15 5:55 ` [PATCH v4 15/79] include/uapi/drm/qxl_drm.h: " Mikko Rapeli
` (66 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:55 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, David Airlie, dri-devel, linux-api
Fixes userspace compilation errors like:
error: unknown type name ‘uint32_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/drm/vmwgfx_drm.h | 264 +++++++++++++++++++++---------------------
1 file changed, 132 insertions(+), 132 deletions(-)
diff --git a/include/uapi/drm/vmwgfx_drm.h b/include/uapi/drm/vmwgfx_drm.h
index 05b2049..ef31f44 100644
--- a/include/uapi/drm/vmwgfx_drm.h
+++ b/include/uapi/drm/vmwgfx_drm.h
@@ -111,9 +111,9 @@ enum drm_vmw_handle_type {
*/
struct drm_vmw_getparam_arg {
- uint64_t value;
- uint32_t param;
- uint32_t pad64;
+ __u64 value;
+ __u32 param;
+ __u32 pad64;
};
/*************************************************************************/
@@ -134,8 +134,8 @@ struct drm_vmw_getparam_arg {
*/
struct drm_vmw_context_arg {
- int32_t cid;
- uint32_t pad64;
+ __s32 cid;
+ __u32 pad64;
};
/*************************************************************************/
@@ -165,7 +165,7 @@ struct drm_vmw_context_arg {
* @mip_levels: Number of mip levels for each face.
* An unused face should have 0 encoded.
* @size_addr: Address of a user-space array of sruct drm_vmw_size
- * cast to an uint64_t for 32-64 bit compatibility.
+ * cast to an __u64 for 32-64 bit compatibility.
* The size of the array should equal the total number of mipmap levels.
* @shareable: Boolean whether other clients (as identified by file descriptors)
* may reference this surface.
@@ -177,12 +177,12 @@ struct drm_vmw_context_arg {
*/
struct drm_vmw_surface_create_req {
- uint32_t flags;
- uint32_t format;
- uint32_t mip_levels[DRM_VMW_MAX_SURFACE_FACES];
- uint64_t size_addr;
- int32_t shareable;
- int32_t scanout;
+ __u32 flags;
+ __u32 format;
+ __u32 mip_levels[DRM_VMW_MAX_SURFACE_FACES];
+ __u64 size_addr;
+ __s32 shareable;
+ __s32 scanout;
};
/**
@@ -197,7 +197,7 @@ struct drm_vmw_surface_create_req {
*/
struct drm_vmw_surface_arg {
- int32_t sid;
+ __s32 sid;
enum drm_vmw_handle_type handle_type;
};
@@ -213,10 +213,10 @@ struct drm_vmw_surface_arg {
*/
struct drm_vmw_size {
- uint32_t width;
- uint32_t height;
- uint32_t depth;
- uint32_t pad64;
+ __u32 width;
+ __u32 height;
+ __u32 depth;
+ __u32 pad64;
};
/**
@@ -284,13 +284,13 @@ union drm_vmw_surface_reference_arg {
/**
* struct drm_vmw_execbuf_arg
*
- * @commands: User-space address of a command buffer cast to an uint64_t.
+ * @commands: User-space address of a command buffer cast to an __u64.
* @command-size: Size in bytes of the command buffer.
* @throttle-us: Sleep until software is less than @throttle_us
* microseconds ahead of hardware. The driver may round this value
* to the nearest kernel tick.
* @fence_rep: User-space address of a struct drm_vmw_fence_rep cast to an
- * uint64_t.
+ * __u64.
* @version: Allows expanding the execbuf ioctl parameters without breaking
* backwards compatibility, since user-space will always tell the kernel
* which version it uses.
@@ -302,14 +302,14 @@ union drm_vmw_surface_reference_arg {
#define DRM_VMW_EXECBUF_VERSION 2
struct drm_vmw_execbuf_arg {
- uint64_t commands;
- uint32_t command_size;
- uint32_t throttle_us;
- uint64_t fence_rep;
- uint32_t version;
- uint32_t flags;
- uint32_t context_handle;
- uint32_t pad64;
+ __u64 commands;
+ __u32 command_size;
+ __u32 throttle_us;
+ __u64 fence_rep;
+ __u32 version;
+ __u32 flags;
+ __u32 context_handle;
+ __u32 pad64;
};
/**
@@ -338,12 +338,12 @@ struct drm_vmw_execbuf_arg {
*/
struct drm_vmw_fence_rep {
- uint32_t handle;
- uint32_t mask;
- uint32_t seqno;
- uint32_t passed_seqno;
- uint32_t pad64;
- int32_t error;
+ __u32 handle;
+ __u32 mask;
+ __u32 seqno;
+ __u32 passed_seqno;
+ __u32 pad64;
+ __s32 error;
};
/*************************************************************************/
@@ -373,8 +373,8 @@ struct drm_vmw_fence_rep {
*/
struct drm_vmw_alloc_dmabuf_req {
- uint32_t size;
- uint32_t pad64;
+ __u32 size;
+ __u32 pad64;
};
/**
@@ -391,11 +391,11 @@ struct drm_vmw_alloc_dmabuf_req {
*/
struct drm_vmw_dmabuf_rep {
- uint64_t map_handle;
- uint32_t handle;
- uint32_t cur_gmr_id;
- uint32_t cur_gmr_offset;
- uint32_t pad64;
+ __u64 map_handle;
+ __u32 handle;
+ __u32 cur_gmr_id;
+ __u32 cur_gmr_offset;
+ __u32 pad64;
};
/**
@@ -428,8 +428,8 @@ union drm_vmw_alloc_dmabuf_arg {
*/
struct drm_vmw_unref_dmabuf_arg {
- uint32_t handle;
- uint32_t pad64;
+ __u32 handle;
+ __u32 pad64;
};
/*************************************************************************/
@@ -452,10 +452,10 @@ struct drm_vmw_unref_dmabuf_arg {
*/
struct drm_vmw_rect {
- int32_t x;
- int32_t y;
- uint32_t w;
- uint32_t h;
+ __s32 x;
+ __s32 y;
+ __u32 w;
+ __u32 h;
};
/**
@@ -477,21 +477,21 @@ struct drm_vmw_rect {
*/
struct drm_vmw_control_stream_arg {
- uint32_t stream_id;
- uint32_t enabled;
+ __u32 stream_id;
+ __u32 enabled;
- uint32_t flags;
- uint32_t color_key;
+ __u32 flags;
+ __u32 color_key;
- uint32_t handle;
- uint32_t offset;
- int32_t format;
- uint32_t size;
- uint32_t width;
- uint32_t height;
- uint32_t pitch[3];
+ __u32 handle;
+ __u32 offset;
+ __s32 format;
+ __u32 size;
+ __u32 width;
+ __u32 height;
+ __u32 pitch[3];
- uint32_t pad64;
+ __u32 pad64;
struct drm_vmw_rect src;
struct drm_vmw_rect dst;
};
@@ -519,12 +519,12 @@ struct drm_vmw_control_stream_arg {
*/
struct drm_vmw_cursor_bypass_arg {
- uint32_t flags;
- uint32_t crtc_id;
- int32_t xpos;
- int32_t ypos;
- int32_t xhot;
- int32_t yhot;
+ __u32 flags;
+ __u32 crtc_id;
+ __s32 xpos;
+ __s32 ypos;
+ __s32 xhot;
+ __s32 yhot;
};
/*************************************************************************/
@@ -542,8 +542,8 @@ struct drm_vmw_cursor_bypass_arg {
*/
struct drm_vmw_stream_arg {
- uint32_t stream_id;
- uint32_t pad64;
+ __u32 stream_id;
+ __u32 pad64;
};
/*************************************************************************/
@@ -565,7 +565,7 @@ struct drm_vmw_stream_arg {
/**
* struct drm_vmw_get_3d_cap_arg
*
- * @buffer: Pointer to a buffer for capability data, cast to an uint64_t
+ * @buffer: Pointer to a buffer for capability data, cast to an __u64
* @size: Max size to copy
*
* Input argument to the DRM_VMW_GET_3D_CAP_IOCTL
@@ -573,9 +573,9 @@ struct drm_vmw_stream_arg {
*/
struct drm_vmw_get_3d_cap_arg {
- uint64_t buffer;
- uint32_t max_size;
- uint32_t pad64;
+ __u64 buffer;
+ __u32 max_size;
+ __u32 pad64;
};
/*************************************************************************/
@@ -624,14 +624,14 @@ struct drm_vmw_get_3d_cap_arg {
*/
struct drm_vmw_fence_wait_arg {
- uint32_t handle;
- int32_t cookie_valid;
- uint64_t kernel_cookie;
- uint64_t timeout_us;
- int32_t lazy;
- int32_t flags;
- int32_t wait_options;
- int32_t pad64;
+ __u32 handle;
+ __s32 cookie_valid;
+ __u64 kernel_cookie;
+ __u64 timeout_us;
+ __s32 lazy;
+ __s32 flags;
+ __s32 wait_options;
+ __s32 pad64;
};
/*************************************************************************/
@@ -655,12 +655,12 @@ struct drm_vmw_fence_wait_arg {
*/
struct drm_vmw_fence_signaled_arg {
- uint32_t handle;
- uint32_t flags;
- int32_t signaled;
- uint32_t passed_seqno;
- uint32_t signaled_flags;
- uint32_t pad64;
+ __u32 handle;
+ __u32 flags;
+ __s32 signaled;
+ __u32 passed_seqno;
+ __u32 signaled_flags;
+ __u32 pad64;
};
/*************************************************************************/
@@ -681,8 +681,8 @@ struct drm_vmw_fence_signaled_arg {
*/
struct drm_vmw_fence_arg {
- uint32_t handle;
- uint32_t pad64;
+ __u32 handle;
+ __u32 pad64;
};
@@ -703,9 +703,9 @@ struct drm_vmw_fence_arg {
struct drm_vmw_event_fence {
struct drm_event base;
- uint64_t user_data;
- uint32_t tv_sec;
- uint32_t tv_usec;
+ __u64 user_data;
+ __u32 tv_sec;
+ __u32 tv_usec;
};
/*
@@ -717,17 +717,17 @@ struct drm_vmw_event_fence {
/**
* struct drm_vmw_fence_event_arg
*
- * @fence_rep: Pointer to fence_rep structure cast to uint64_t or 0 if
+ * @fence_rep: Pointer to fence_rep structure cast to __u64 or 0 if
* the fence is not supposed to be referenced by user-space.
* @user_info: Info to be delivered with the event.
* @handle: Attach the event to this fence only.
* @flags: A set of flags as defined above.
*/
struct drm_vmw_fence_event_arg {
- uint64_t fence_rep;
- uint64_t user_data;
- uint32_t handle;
- uint32_t flags;
+ __u64 fence_rep;
+ __u64 user_data;
+ __u32 handle;
+ __u32 flags;
};
@@ -747,7 +747,7 @@ struct drm_vmw_fence_event_arg {
* @sid: Surface id to present from.
* @dest_x: X placement coordinate for surface.
* @dest_y: Y placement coordinate for surface.
- * @clips_ptr: Pointer to an array of clip rects cast to an uint64_t.
+ * @clips_ptr: Pointer to an array of clip rects cast to an __u64.
* @num_clips: Number of cliprects given relative to the framebuffer origin,
* in the same coordinate space as the frame buffer.
* @pad64: Unused 64-bit padding.
@@ -756,13 +756,13 @@ struct drm_vmw_fence_event_arg {
*/
struct drm_vmw_present_arg {
- uint32_t fb_id;
- uint32_t sid;
- int32_t dest_x;
- int32_t dest_y;
- uint64_t clips_ptr;
- uint32_t num_clips;
- uint32_t pad64;
+ __u32 fb_id;
+ __u32 sid;
+ __s32 dest_x;
+ __s32 dest_y;
+ __u64 clips_ptr;
+ __u32 num_clips;
+ __u32 pad64;
};
@@ -780,16 +780,16 @@ struct drm_vmw_present_arg {
* struct drm_vmw_present_arg
* @fb_id: fb_id to present / read back from.
* @num_clips: Number of cliprects.
- * @clips_ptr: Pointer to an array of clip rects cast to an uint64_t.
- * @fence_rep: Pointer to a struct drm_vmw_fence_rep, cast to an uint64_t.
+ * @clips_ptr: Pointer to an array of clip rects cast to an __u64.
+ * @fence_rep: Pointer to a struct drm_vmw_fence_rep, cast to an __u64.
* If this member is NULL, then the ioctl should not return a fence.
*/
struct drm_vmw_present_readback_arg {
- uint32_t fb_id;
- uint32_t num_clips;
- uint64_t clips_ptr;
- uint64_t fence_rep;
+ __u32 fb_id;
+ __u32 num_clips;
+ __u64 clips_ptr;
+ __u64 fence_rep;
};
/*************************************************************************/
@@ -805,14 +805,14 @@ struct drm_vmw_present_readback_arg {
* struct drm_vmw_update_layout_arg
*
* @num_outputs: number of active connectors
- * @rects: pointer to array of drm_vmw_rect cast to an uint64_t
+ * @rects: pointer to array of drm_vmw_rect cast to an __u64
*
* Input argument to the DRM_VMW_UPDATE_LAYOUT Ioctl.
*/
struct drm_vmw_update_layout_arg {
- uint32_t num_outputs;
- uint32_t pad64;
- uint64_t rects;
+ __u32 num_outputs;
+ __u32 pad64;
+ __u64 rects;
};
@@ -849,10 +849,10 @@ enum drm_vmw_shader_type {
*/
struct drm_vmw_shader_create_arg {
enum drm_vmw_shader_type shader_type;
- uint32_t size;
- uint32_t buffer_handle;
- uint32_t shader_handle;
- uint64_t offset;
+ __u32 size;
+ __u32 buffer_handle;
+ __u32 shader_handle;
+ __u64 offset;
};
/*************************************************************************/
@@ -871,8 +871,8 @@ struct drm_vmw_shader_create_arg {
* Input argument to the DRM_VMW_UNREF_SHADER ioctl.
*/
struct drm_vmw_shader_arg {
- uint32_t handle;
- uint32_t pad64;
+ __u32 handle;
+ __u32 pad64;
};
/*************************************************************************/
@@ -918,14 +918,14 @@ enum drm_vmw_surface_flags {
* Part of output argument for the DRM_VMW_GB_SURFACE_REF Ioctl.
*/
struct drm_vmw_gb_surface_create_req {
- uint32_t svga3d_flags;
- uint32_t format;
- uint32_t mip_levels;
+ __u32 svga3d_flags;
+ __u32 format;
+ __u32 mip_levels;
enum drm_vmw_surface_flags drm_surface_flags;
- uint32_t multisample_count;
- uint32_t autogen_filter;
- uint32_t buffer_handle;
- uint32_t array_size;
+ __u32 multisample_count;
+ __u32 autogen_filter;
+ __u32 buffer_handle;
+ __u32 array_size;
struct drm_vmw_size base_size;
};
@@ -944,11 +944,11 @@ struct drm_vmw_gb_surface_create_req {
* Output argument for the DRM_VMW_GB_SURFACE_CREATE ioctl.
*/
struct drm_vmw_gb_surface_create_rep {
- uint32_t handle;
- uint32_t backup_size;
- uint32_t buffer_handle;
- uint32_t buffer_size;
- uint64_t buffer_map_handle;
+ __u32 handle;
+ __u32 backup_size;
+ __u32 buffer_handle;
+ __u32 buffer_size;
+ __u64 buffer_map_handle;
};
/**
@@ -1061,8 +1061,8 @@ enum drm_vmw_synccpu_op {
struct drm_vmw_synccpu_arg {
enum drm_vmw_synccpu_op op;
enum drm_vmw_synccpu_flags flags;
- uint32_t handle;
- uint32_t pad64;
+ __u32 handle;
+ __u32 pad64;
};
/*************************************************************************/
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 15/79] include/uapi/drm/qxl_drm.h: use __s32, __u32 and __u64 from linux/types.h
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (13 preceding siblings ...)
2015-10-15 5:55 ` [PATCH v4 14/79] include/uapi/drm/vmwgfx_drm.h: use __s32, __u32 and __u64 from linux/types.h Mikko Rapeli
@ 2015-10-15 5:55 ` Mikko Rapeli
2015-10-15 5:55 ` [PATCH v4 16/79] include/uapi/linux/agpgart.h: include stdlib.h in userspace Mikko Rapeli
` (65 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:55 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, David Airlie, dri-devel, linux-api
Fixes userspace compilation errors like:
error: unknown type name ‘uint32_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/drm/qxl_drm.h | 74 +++++++++++++++++++++++-----------------------
1 file changed, 37 insertions(+), 37 deletions(-)
diff --git a/include/uapi/drm/qxl_drm.h b/include/uapi/drm/qxl_drm.h
index ebebd36..dface36 100644
--- a/include/uapi/drm/qxl_drm.h
+++ b/include/uapi/drm/qxl_drm.h
@@ -30,7 +30,7 @@
/* Please note that modifications to all structs defined here are
* subject to backwards-compatibility constraints.
*
- * Do not use pointers, use uint64_t instead for 32 bit / 64 bit user/kernel
+ * Do not use pointers, use __u64 instead for 32 bit / 64 bit user/kernel
* compatibility Keep fields aligned to their size
*/
@@ -48,14 +48,14 @@
#define DRM_QXL_ALLOC_SURF 0x06
struct drm_qxl_alloc {
- uint32_t size;
- uint32_t handle; /* 0 is an invalid handle */
+ __u32 size;
+ __u32 handle; /* 0 is an invalid handle */
};
struct drm_qxl_map {
- uint64_t offset; /* use for mmap system call */
- uint32_t handle;
- uint32_t pad;
+ __u64 offset; /* use for mmap system call */
+ __u32 handle;
+ __u32 pad;
};
/*
@@ -68,59 +68,59 @@ struct drm_qxl_map {
#define QXL_RELOC_TYPE_SURF 2
struct drm_qxl_reloc {
- uint64_t src_offset; /* offset into src_handle or src buffer */
- uint64_t dst_offset; /* offset in dest handle */
- uint32_t src_handle; /* dest handle to compute address from */
- uint32_t dst_handle; /* 0 if to command buffer */
- uint32_t reloc_type;
- uint32_t pad;
+ __u64 src_offset; /* offset into src_handle or src buffer */
+ __u64 dst_offset; /* offset in dest handle */
+ __u32 src_handle; /* dest handle to compute address from */
+ __u32 dst_handle; /* 0 if to command buffer */
+ __u32 reloc_type;
+ __u32 pad;
};
struct drm_qxl_command {
- uint64_t __user command; /* void* */
- uint64_t __user relocs; /* struct drm_qxl_reloc* */
- uint32_t type;
- uint32_t command_size;
- uint32_t relocs_num;
- uint32_t pad;
+ __u64 __user command; /* void* */
+ __u64 __user relocs; /* struct drm_qxl_reloc* */
+ __u32 type;
+ __u32 command_size;
+ __u32 relocs_num;
+ __u32 pad;
};
/* XXX: call it drm_qxl_commands? */
struct drm_qxl_execbuffer {
- uint32_t flags; /* for future use */
- uint32_t commands_num;
- uint64_t __user commands; /* struct drm_qxl_command* */
+ __u32 flags; /* for future use */
+ __u32 commands_num;
+ __u64 __user commands; /* struct drm_qxl_command* */
};
struct drm_qxl_update_area {
- uint32_t handle;
- uint32_t top;
- uint32_t left;
- uint32_t bottom;
- uint32_t right;
- uint32_t pad;
+ __u32 handle;
+ __u32 top;
+ __u32 left;
+ __u32 bottom;
+ __u32 right;
+ __u32 pad;
};
#define QXL_PARAM_NUM_SURFACES 1 /* rom->n_surfaces */
#define QXL_PARAM_MAX_RELOCS 2
struct drm_qxl_getparam {
- uint64_t param;
- uint64_t value;
+ __u64 param;
+ __u64 value;
};
/* these are one bit values */
struct drm_qxl_clientcap {
- uint32_t index;
- uint32_t pad;
+ __u32 index;
+ __u32 pad;
};
struct drm_qxl_alloc_surf {
- uint32_t format;
- uint32_t width;
- uint32_t height;
- int32_t stride;
- uint32_t handle;
- uint32_t pad;
+ __u32 format;
+ __u32 width;
+ __u32 height;
+ __s32 stride;
+ __u32 handle;
+ __u32 pad;
};
#define DRM_IOCTL_QXL_ALLOC \
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 16/79] include/uapi/linux/agpgart.h: include stdlib.h in userspace
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (14 preceding siblings ...)
2015-10-15 5:55 ` [PATCH v4 15/79] include/uapi/drm/qxl_drm.h: " Mikko Rapeli
@ 2015-10-15 5:55 ` Mikko Rapeli
2015-10-15 5:55 ` Mikko Rapeli
` (64 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:55 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, David Airlie, linux-api
Fixes userspace compiler error:
error: unknown type name ‘size_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/agpgart.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/uapi/linux/agpgart.h b/include/uapi/linux/agpgart.h
index 4e828cf..f525104 100644
--- a/include/uapi/linux/agpgart.h
+++ b/include/uapi/linux/agpgart.h
@@ -52,6 +52,7 @@
#ifndef __KERNEL__
#include <linux/types.h>
+#include <stdlib.h>
struct agp_version {
__u16 major;
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 17/79] include/uapi/sound/emu10k1.h: added EMU10K1 version of DECLARE_BITMAP macro
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
@ 2015-10-15 5:55 ` Mikko Rapeli
2015-10-15 5:55 ` [PATCH v4 02/79] scripts/headers_compile_test.sh: compile test script for exported headers Mikko Rapeli
` (79 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:55 UTC (permalink / raw)
To: linux-kernel
Cc: mikko.rapeli, Jaroslav Kysela, Takashi Iwai, alsa-devel, linux-api
Fixes userspace compilation error:
error: expected specifier-qualifier-list before ‘DECLARE_BITMAP’
DECLARE_BITMAP(gpr_valid, 0x200); /* bitmask of valid initializers */
DECLARE_BITMAP macro is not meant for userspace headers and thus
added here as private copy for emu10k.h.
Fix was suggested by Arnd Bergmann <arnd@arndb.de> in message
<2168807.4Yxh5gl11Q@wuerfel> and Takashi Iwai <tiwai@suse.de>
in message <s5h1thx88tk.wl-tiwai@suse.de> on lkml.
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/sound/emu10k1.h | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/include/uapi/sound/emu10k1.h b/include/uapi/sound/emu10k1.h
index ec1535b..5175e16 100644
--- a/include/uapi/sound/emu10k1.h
+++ b/include/uapi/sound/emu10k1.h
@@ -34,6 +34,14 @@
#define EMU10K1_FX8010_PCM_COUNT 8
+/*
+ * Following definition is copied from linux/types.h to support compiling
+ * this header file in userspace since they are not generally available for
+ * uapi headers.
+ */
+#define __EMU10K1_DECLARE_BITMAP(name,bits) \
+ unsigned long name[(bits) / (sizeof(unsigned long) * 8)]
+
/* instruction set */
#define iMAC0 0x00 /* R = A + (X * Y >> 31) ; saturation */
#define iMAC1 0x01 /* R = A + (-X * Y >> 31) ; saturation */
@@ -300,7 +308,7 @@ struct snd_emu10k1_fx8010_control_old_gpr {
struct snd_emu10k1_fx8010_code {
char name[128];
- DECLARE_BITMAP(gpr_valid, 0x200); /* bitmask of valid initializers */
+ __EMU10K1_DECLARE_BITMAP(gpr_valid, 0x200); /* bitmask of valid initializers */
__u32 __user *gpr_map; /* initializers */
unsigned int gpr_add_control_count; /* count of GPR controls to add/replace */
@@ -313,11 +321,11 @@ struct snd_emu10k1_fx8010_code {
unsigned int gpr_list_control_total; /* total count of GPR controls */
struct snd_emu10k1_fx8010_control_gpr __user *gpr_list_controls; /* listed GPR controls */
- DECLARE_BITMAP(tram_valid, 0x100); /* bitmask of valid initializers */
+ __EMU10K1_DECLARE_BITMAP(tram_valid, 0x100); /* bitmask of valid initializers */
__u32 __user *tram_data_map; /* data initializers */
__u32 __user *tram_addr_map; /* map initializers */
- DECLARE_BITMAP(code_valid, 1024); /* bitmask of valid instructions */
+ __EMU10K1_DECLARE_BITMAP(code_valid, 1024); /* bitmask of valid instructions */
__u32 __user *code; /* one instruction - 64 bits */
};
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 17/79] include/uapi/sound/emu10k1.h: added EMU10K1 version of DECLARE_BITMAP macro
@ 2015-10-15 5:55 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:55 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, alsa-devel, linux-api, Takashi Iwai
Fixes userspace compilation error:
error: expected specifier-qualifier-list before ‘DECLARE_BITMAP’
DECLARE_BITMAP(gpr_valid, 0x200); /* bitmask of valid initializers */
DECLARE_BITMAP macro is not meant for userspace headers and thus
added here as private copy for emu10k.h.
Fix was suggested by Arnd Bergmann <arnd@arndb.de> in message
<2168807.4Yxh5gl11Q@wuerfel> and Takashi Iwai <tiwai@suse.de>
in message <s5h1thx88tk.wl-tiwai@suse.de> on lkml.
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/sound/emu10k1.h | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/include/uapi/sound/emu10k1.h b/include/uapi/sound/emu10k1.h
index ec1535b..5175e16 100644
--- a/include/uapi/sound/emu10k1.h
+++ b/include/uapi/sound/emu10k1.h
@@ -34,6 +34,14 @@
#define EMU10K1_FX8010_PCM_COUNT 8
+/*
+ * Following definition is copied from linux/types.h to support compiling
+ * this header file in userspace since they are not generally available for
+ * uapi headers.
+ */
+#define __EMU10K1_DECLARE_BITMAP(name,bits) \
+ unsigned long name[(bits) / (sizeof(unsigned long) * 8)]
+
/* instruction set */
#define iMAC0 0x00 /* R = A + (X * Y >> 31) ; saturation */
#define iMAC1 0x01 /* R = A + (-X * Y >> 31) ; saturation */
@@ -300,7 +308,7 @@ struct snd_emu10k1_fx8010_control_old_gpr {
struct snd_emu10k1_fx8010_code {
char name[128];
- DECLARE_BITMAP(gpr_valid, 0x200); /* bitmask of valid initializers */
+ __EMU10K1_DECLARE_BITMAP(gpr_valid, 0x200); /* bitmask of valid initializers */
__u32 __user *gpr_map; /* initializers */
unsigned int gpr_add_control_count; /* count of GPR controls to add/replace */
@@ -313,11 +321,11 @@ struct snd_emu10k1_fx8010_code {
unsigned int gpr_list_control_total; /* total count of GPR controls */
struct snd_emu10k1_fx8010_control_gpr __user *gpr_list_controls; /* listed GPR controls */
- DECLARE_BITMAP(tram_valid, 0x100); /* bitmask of valid initializers */
+ __EMU10K1_DECLARE_BITMAP(tram_valid, 0x100); /* bitmask of valid initializers */
__u32 __user *tram_data_map; /* data initializers */
__u32 __user *tram_addr_map; /* map initializers */
- DECLARE_BITMAP(code_valid, 1024); /* bitmask of valid instructions */
+ __EMU10K1_DECLARE_BITMAP(code_valid, 1024); /* bitmask of valid instructions */
__u32 __user *code; /* one instruction - 64 bits */
};
--
2.5.0
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 18/79] dm-log-userspace.h: use __u32, __s32 and __u64 from linux/types.h
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (16 preceding siblings ...)
2015-10-15 5:55 ` Mikko Rapeli
@ 2015-10-15 5:55 ` Mikko Rapeli
2015-10-15 8:09 ` Mike Snitzer
2015-10-15 5:55 ` [PATCH v4 19/79] hsi_char.h: use __u32 " Mikko Rapeli
` (62 subsequent siblings)
80 siblings, 1 reply; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:55 UTC (permalink / raw)
To: linux-kernel
Cc: mikko.rapeli, Alasdair Kergon, Mike Snitzer, dm-devel, linux-api
Fixes userspace compilation errors like:
linux/dm-log-userspace.h:416:2: error: unknown type name ‘uint64_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/dm-log-userspace.h | 43 ++++++++++++++++++-----------------
1 file changed, 22 insertions(+), 21 deletions(-)
diff --git a/include/uapi/linux/dm-log-userspace.h b/include/uapi/linux/dm-log-userspace.h
index 0fa0d9e..c5ff216 100644
--- a/include/uapi/linux/dm-log-userspace.h
+++ b/include/uapi/linux/dm-log-userspace.h
@@ -7,6 +7,7 @@
#ifndef __DM_LOG_USERSPACE_H__
#define __DM_LOG_USERSPACE_H__
+#include <linux/types.h>
#include <linux/dm-ioctl.h> /* For DM_UUID_LEN */
/*
@@ -147,12 +148,12 @@
/*
* DM_ULOG_GET_REGION_SIZE corresponds to (found in dm-dirty-log.h):
- * uint32_t (*get_region_size)(struct dm_dirty_log *log);
+ * __u32 (*get_region_size)(struct dm_dirty_log *log);
*
* Payload-to-userspace:
* None.
* Payload-to-kernel:
- * uint64_t - contains the region size
+ * __u64 - contains the region size
*
* The region size is something that was determined at constructor time.
* It is returned in the payload area and 'data_size' is set to
@@ -168,11 +169,11 @@
* int (*is_clean)(struct dm_dirty_log *log, region_t region);
*
* Payload-to-userspace:
- * uint64_t - the region to get clean status on
+ * __u64 - the region to get clean status on
* Payload-to-kernel:
* int64_t - 1 if clean, 0 otherwise
*
- * Payload is sizeof(uint64_t) and contains the region for which the clean
+ * Payload is sizeof(__u64) and contains the region for which the clean
* status is being made.
*
* When the request has been processed, user-space must return the
@@ -187,7 +188,7 @@
* int can_block);
*
* Payload-to-userspace:
- * uint64_t - the region to get sync status on
+ * __u64 - the region to get sync status on
* Payload-to-kernel:
* int64_t - 1 if in-sync, 0 otherwise
*
@@ -203,7 +204,7 @@
* Payload-to-userspace:
* If the 'integrated_flush' directive is present in the constructor
* table, the payload is as same as DM_ULOG_MARK_REGION:
- * uint64_t [] - region(s) to mark
+ * __u64 [] - region(s) to mark
* else
* None
* Payload-to-kernel:
@@ -225,13 +226,13 @@
* void (*mark_region)(struct dm_dirty_log *log, region_t region);
*
* Payload-to-userspace:
- * uint64_t [] - region(s) to mark
+ * __u64 [] - region(s) to mark
* Payload-to-kernel:
* None.
*
* Incoming payload contains the one or more regions to mark dirty.
* The number of regions contained in the payload can be determined from
- * 'data_size/sizeof(uint64_t)'.
+ * 'data_size/sizeof(__u64)'.
*
* When the request has been processed, user-space must return the
* dm_ulog_request to the kernel - setting the 'error' field and clearing
@@ -244,13 +245,13 @@
* void (*clear_region)(struct dm_dirty_log *log, region_t region);
*
* Payload-to-userspace:
- * uint64_t [] - region(s) to clear
+ * __u64 [] - region(s) to clear
* Payload-to-kernel:
* None.
*
* Incoming payload contains the one or more regions to mark clean.
* The number of regions contained in the payload can be determined from
- * 'data_size/sizeof(uint64_t)'.
+ * 'data_size/sizeof(__u64)'.
*
* When the request has been processed, user-space must return the
* dm_ulog_request to the kernel - setting the 'error' field and clearing
@@ -267,7 +268,7 @@
* Payload-to-kernel:
* {
* int64_t i; -- 1 if recovery necessary, 0 otherwise
- * uint64_t r; -- The region to recover if i=1
+ * __u64 r; -- The region to recover if i=1
* }
* 'data_size' should be set appropriately.
*
@@ -283,7 +284,7 @@
*
* Payload-to-userspace:
* {
- * uint64_t - region to set sync state on
+ * __u64 - region to set sync state on
* int64_t - 0 if not-in-sync, 1 if in-sync
* }
* Payload-to-kernel:
@@ -302,7 +303,7 @@
* Payload-to-userspace:
* None.
* Payload-to-kernel:
- * uint64_t - the number of in-sync regions
+ * __u64 - the number of in-sync regions
*
* No incoming payload. Kernel-bound payload contains the number of
* regions that are in-sync (in a size_t).
@@ -350,11 +351,11 @@
* int (*is_remote_recovering)(struct dm_dirty_log *log, region_t region);
*
* Payload-to-userspace:
- * uint64_t - region to determine recovery status on
+ * __u64 - region to determine recovery status on
* Payload-to-kernel:
* {
* int64_t is_recovering; -- 0 if no, 1 if yes
- * uint64_t in_sync_hint; -- lowest region still needing resync
+ * __u64 in_sync_hint; -- lowest region still needing resync
* }
*
* When the request has been processed, user-space must return the
@@ -413,16 +414,16 @@ struct dm_ulog_request {
* differentiate between logs that are being swapped and have the
* same 'uuid'. (Think "live" and "inactive" device-mapper tables.)
*/
- uint64_t luid;
+ __u64 luid;
char uuid[DM_UUID_LEN];
char padding[3]; /* Padding because DM_UUID_LEN = 129 */
- uint32_t version; /* See DM_ULOG_REQUEST_VERSION */
- int32_t error; /* Used to report back processing errors */
+ __u32 version; /* See DM_ULOG_REQUEST_VERSION */
+ __s32 error; /* Used to report back processing errors */
- uint32_t seq; /* Sequence number for request */
- uint32_t request_type; /* DM_ULOG_* defined above */
- uint32_t data_size; /* How much data (not including this struct) */
+ __u32 seq; /* Sequence number for request */
+ __u32 request_type; /* DM_ULOG_* defined above */
+ __u32 data_size; /* How much data (not including this struct) */
char data[0];
};
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 19/79] hsi_char.h: use __u32 from linux/types.h
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (17 preceding siblings ...)
2015-10-15 5:55 ` [PATCH v4 18/79] dm-log-userspace.h: use __u32, __s32 and __u64 from linux/types.h Mikko Rapeli
@ 2015-10-15 5:55 ` Mikko Rapeli
2015-10-15 5:55 ` [PATCH v4 20/79] include/uapi/linux/hsi/cs-protocol.h: include linux/time.h Mikko Rapeli
` (61 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:55 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, Sebastian Reichel, linux-api
Fixes userspace compiler errors like:
linux/hsi/hsi_char.h:51:2: error: unknown type name ‘uint32_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/hsi/hsi_char.h | 17 +++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)
diff --git a/include/uapi/linux/hsi/hsi_char.h b/include/uapi/linux/hsi/hsi_char.h
index 76160b4..c00a463 100644
--- a/include/uapi/linux/hsi/hsi_char.h
+++ b/include/uapi/linux/hsi/hsi_char.h
@@ -20,10 +20,11 @@
* 02110-1301 USA
*/
-
#ifndef __HSI_CHAR_H
#define __HSI_CHAR_H
+#include <linux/types.h>
+
#define HSI_CHAR_MAGIC 'k'
#define HSC_IOW(num, dtype) _IOW(HSI_CHAR_MAGIC, num, dtype)
#define HSC_IOR(num, dtype) _IOR(HSI_CHAR_MAGIC, num, dtype)
@@ -48,16 +49,16 @@
#define HSC_ARB_PRIO 1
struct hsc_rx_config {
- uint32_t mode;
- uint32_t flow;
- uint32_t channels;
+ __u32 mode;
+ __u32 flow;
+ __u32 channels;
};
struct hsc_tx_config {
- uint32_t mode;
- uint32_t channels;
- uint32_t speed;
- uint32_t arb_mode;
+ __u32 mode;
+ __u32 channels;
+ __u32 speed;
+ __u32 arb_mode;
};
#endif /* __HSI_CHAR_H */
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 20/79] include/uapi/linux/hsi/cs-protocol.h: include linux/time.h
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (18 preceding siblings ...)
2015-10-15 5:55 ` [PATCH v4 19/79] hsi_char.h: use __u32 " Mikko Rapeli
@ 2015-10-15 5:55 ` Mikko Rapeli
2015-10-15 5:55 ` Mikko Rapeli
` (60 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:55 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, Sebastian Reichel, linux-api
Fixes userspace compilation errors due to missing timespec definition.
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/hsi/cs-protocol.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/uapi/linux/hsi/cs-protocol.h b/include/uapi/linux/hsi/cs-protocol.h
index f153d6e..c8d9f08 100644
--- a/include/uapi/linux/hsi/cs-protocol.h
+++ b/include/uapi/linux/hsi/cs-protocol.h
@@ -26,6 +26,7 @@
#include <linux/types.h>
#include <linux/ioctl.h>
+#include <linux/time.h>
/* chardev parameters */
#define CS_DEV_FILE_NAME "/dev/cmt_speech"
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 21/79] ebtables.h: use __u64 from linux/types.h
@ 2015-10-15 5:55 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:55 UTC (permalink / raw)
To: linux-kernel
Cc: mikko.rapeli, Pablo Neira Ayuso, Jiri Kosina,
Arturo Borrero Gonzalez, Geert Uytterhoeven, linux-api
Fixes userspace compilation error:
linux/netfilter_bridge/ebtables.h:38:2: error: unknown type name ‘uint64_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/netfilter_bridge/ebtables.h | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/include/uapi/linux/netfilter_bridge/ebtables.h b/include/uapi/linux/netfilter_bridge/ebtables.h
index fd2ee50..e3cdf9f 100644
--- a/include/uapi/linux/netfilter_bridge/ebtables.h
+++ b/include/uapi/linux/netfilter_bridge/ebtables.h
@@ -12,6 +12,8 @@
#ifndef _UAPI__LINUX_BRIDGE_EFF_H
#define _UAPI__LINUX_BRIDGE_EFF_H
+#include <linux/types.h>
+#include <linux/if.h>
#include <linux/netfilter_bridge.h>
#define EBT_TABLE_MAXNAMELEN 32
@@ -33,8 +35,8 @@ struct xt_match;
struct xt_target;
struct ebt_counter {
- uint64_t pcnt;
- uint64_t bcnt;
+ __u64 pcnt;
+ __u64 bcnt;
};
struct ebt_replace {
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 21/79] ebtables.h: use __u64 from linux/types.h
@ 2015-10-15 5:55 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:55 UTC (permalink / raw)
To: linux-kernel-u79uwXL29TY76Z2rM5mHXA
Cc: mikko.rapeli-X3B1VOXEql0, Pablo Neira Ayuso, Jiri Kosina,
Arturo Borrero Gonzalez, Geert Uytterhoeven,
linux-api-u79uwXL29TY76Z2rM5mHXA
Fixes userspace compilation error:
linux/netfilter_bridge/ebtables.h:38:2: error: unknown type name ‘uint64_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli-X3B1VOXEql0@public.gmane.org>
---
include/uapi/linux/netfilter_bridge/ebtables.h | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/include/uapi/linux/netfilter_bridge/ebtables.h b/include/uapi/linux/netfilter_bridge/ebtables.h
index fd2ee50..e3cdf9f 100644
--- a/include/uapi/linux/netfilter_bridge/ebtables.h
+++ b/include/uapi/linux/netfilter_bridge/ebtables.h
@@ -12,6 +12,8 @@
#ifndef _UAPI__LINUX_BRIDGE_EFF_H
#define _UAPI__LINUX_BRIDGE_EFF_H
+#include <linux/types.h>
+#include <linux/if.h>
#include <linux/netfilter_bridge.h>
#define EBT_TABLE_MAXNAMELEN 32
@@ -33,8 +35,8 @@ struct xt_match;
struct xt_target;
struct ebt_counter {
- uint64_t pcnt;
- uint64_t bcnt;
+ __u64 pcnt;
+ __u64 bcnt;
};
struct ebt_replace {
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 22/79] cld.h: use __u8, __u16, __s16, __u32 and __s64 from linux/types.h
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (20 preceding siblings ...)
2015-10-15 5:55 ` Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 23/79] rds.h: " Mikko Rapeli
` (58 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel
Cc: mikko.rapeli, J. Bruce Fields, Jeff Layton, linux-nfs, linux-api
Fixes userspace compilation errors like:
linux/nfsd/cld.h:40:2: error: unknown type name ‘uint16_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/nfsd/cld.h | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/include/uapi/linux/nfsd/cld.h b/include/uapi/linux/nfsd/cld.h
index f14a9ab..d9f2306 100644
--- a/include/uapi/linux/nfsd/cld.h
+++ b/include/uapi/linux/nfsd/cld.h
@@ -22,6 +22,8 @@
#ifndef _NFSD_CLD_H
#define _NFSD_CLD_H
+#include <linux/types.h>
+
/* latest upcall version available */
#define CLD_UPCALL_VERSION 1
@@ -37,18 +39,18 @@ enum cld_command {
/* representation of long-form NFSv4 client ID */
struct cld_name {
- uint16_t cn_len; /* length of cm_id */
+ __u16 cn_len; /* length of cm_id */
unsigned char cn_id[NFS4_OPAQUE_LIMIT]; /* client-provided */
} __attribute__((packed));
/* message struct for communication with userspace */
struct cld_msg {
- uint8_t cm_vers; /* upcall version */
- uint8_t cm_cmd; /* upcall command */
- int16_t cm_status; /* return code */
- uint32_t cm_xid; /* transaction id */
+ __u8 cm_vers; /* upcall version */
+ __u8 cm_cmd; /* upcall command */
+ __s16 cm_status; /* return code */
+ __u32 cm_xid; /* transaction id */
union {
- int64_t cm_gracetime; /* grace period start time */
+ __s64 cm_gracetime; /* grace period start time */
struct cld_name cm_name;
} __attribute__((packed)) cm_u;
} __attribute__((packed));
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 23/79] rds.h: use __u8, __u16, __s16, __u32 and __s64 from linux/types.h
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (21 preceding siblings ...)
2015-10-15 5:56 ` [PATCH v4 22/79] cld.h: use __u8, __u16, __s16, __u32 and __s64 " Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 11:06 ` Sowmini Varadhan
2015-10-15 5:56 ` Mikko Rapeli
` (57 subsequent siblings)
80 siblings, 1 reply; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, David S. Miller, Sowmini Varadhan, linux-api
Fixes userspace compilation errors like:
linux/rds.h:96:2: error: unknown type name ‘uint8_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/rds.h | 102 +++++++++++++++++++++++------------------------
1 file changed, 51 insertions(+), 51 deletions(-)
diff --git a/include/uapi/linux/rds.h b/include/uapi/linux/rds.h
index 0f9265c..539f9f8 100644
--- a/include/uapi/linux/rds.h
+++ b/include/uapi/linux/rds.h
@@ -103,8 +103,8 @@
#define RDS_INFO_LAST 10010
struct rds_info_counter {
- uint8_t name[32];
- uint64_t value;
+ __u8 name[32];
+ __u64 value;
} __attribute__((packed));
#define RDS_INFO_CONNECTION_FLAG_SENDING 0x01
@@ -114,35 +114,35 @@ struct rds_info_counter {
#define TRANSNAMSIZ 16
struct rds_info_connection {
- uint64_t next_tx_seq;
- uint64_t next_rx_seq;
+ __u64 next_tx_seq;
+ __u64 next_rx_seq;
__be32 laddr;
__be32 faddr;
- uint8_t transport[TRANSNAMSIZ]; /* null term ascii */
- uint8_t flags;
+ __u8 transport[TRANSNAMSIZ]; /* null term ascii */
+ __u8 flags;
} __attribute__((packed));
#define RDS_INFO_MESSAGE_FLAG_ACK 0x01
#define RDS_INFO_MESSAGE_FLAG_FAST_ACK 0x02
struct rds_info_message {
- uint64_t seq;
- uint32_t len;
+ __u64 seq;
+ __u32 len;
__be32 laddr;
__be32 faddr;
__be16 lport;
__be16 fport;
- uint8_t flags;
+ __u8 flags;
} __attribute__((packed));
struct rds_info_socket {
- uint32_t sndbuf;
+ __u32 sndbuf;
__be32 bound_addr;
__be32 connected_addr;
__be16 bound_port;
__be16 connected_port;
- uint32_t rcvbuf;
- uint64_t inum;
+ __u32 rcvbuf;
+ __u64 inum;
} __attribute__((packed));
struct rds_info_tcp_socket {
@@ -150,25 +150,25 @@ struct rds_info_tcp_socket {
__be16 local_port;
__be32 peer_addr;
__be16 peer_port;
- uint64_t hdr_rem;
- uint64_t data_rem;
- uint32_t last_sent_nxt;
- uint32_t last_expected_una;
- uint32_t last_seen_una;
+ __u64 hdr_rem;
+ __u64 data_rem;
+ __u32 last_sent_nxt;
+ __u32 last_expected_una;
+ __u32 last_seen_una;
} __attribute__((packed));
#define RDS_IB_GID_LEN 16
struct rds_info_rdma_connection {
__be32 src_addr;
__be32 dst_addr;
- uint8_t src_gid[RDS_IB_GID_LEN];
- uint8_t dst_gid[RDS_IB_GID_LEN];
+ __u8 src_gid[RDS_IB_GID_LEN];
+ __u8 dst_gid[RDS_IB_GID_LEN];
- uint32_t max_send_wr;
- uint32_t max_recv_wr;
- uint32_t max_send_sge;
- uint32_t rdma_mr_max;
- uint32_t rdma_mr_size;
+ __u32 max_send_wr;
+ __u32 max_recv_wr;
+ __u32 max_send_sge;
+ __u32 rdma_mr_max;
+ __u32 rdma_mr_size;
};
/*
@@ -209,70 +209,70 @@ struct rds_info_rdma_connection {
* (so that the application does not have to worry about
* alignment).
*/
-typedef uint64_t rds_rdma_cookie_t;
+typedef __u64 rds_rdma_cookie_t;
struct rds_iovec {
- uint64_t addr;
- uint64_t bytes;
+ __u64 addr;
+ __u64 bytes;
};
struct rds_get_mr_args {
struct rds_iovec vec;
- uint64_t cookie_addr;
- uint64_t flags;
+ __u64 cookie_addr;
+ __u64 flags;
};
struct rds_get_mr_for_dest_args {
struct sockaddr_storage dest_addr;
struct rds_iovec vec;
- uint64_t cookie_addr;
- uint64_t flags;
+ __u64 cookie_addr;
+ __u64 flags;
};
struct rds_free_mr_args {
rds_rdma_cookie_t cookie;
- uint64_t flags;
+ __u64 flags;
};
struct rds_rdma_args {
rds_rdma_cookie_t cookie;
struct rds_iovec remote_vec;
- uint64_t local_vec_addr;
- uint64_t nr_local;
- uint64_t flags;
- uint64_t user_token;
+ __u64 local_vec_addr;
+ __u64 nr_local;
+ __u64 flags;
+ __u64 user_token;
};
struct rds_atomic_args {
rds_rdma_cookie_t cookie;
- uint64_t local_addr;
- uint64_t remote_addr;
+ __u64 local_addr;
+ __u64 remote_addr;
union {
struct {
- uint64_t compare;
- uint64_t swap;
+ __u64 compare;
+ __u64 swap;
} cswp;
struct {
- uint64_t add;
+ __u64 add;
} fadd;
struct {
- uint64_t compare;
- uint64_t swap;
- uint64_t compare_mask;
- uint64_t swap_mask;
+ __u64 compare;
+ __u64 swap;
+ __u64 compare_mask;
+ __u64 swap_mask;
} m_cswp;
struct {
- uint64_t add;
- uint64_t nocarry_mask;
+ __u64 add;
+ __u64 nocarry_mask;
} m_fadd;
};
- uint64_t flags;
- uint64_t user_token;
+ __u64 flags;
+ __u64 user_token;
};
struct rds_rdma_notify {
- uint64_t user_token;
- int32_t status;
+ __u64 user_token;
+ __s32 status;
};
#define RDS_RDMA_SUCCESS 0
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 24/79] sctp.h: use __u8 and __u32 from linux/types.h
@ 2015-10-15 5:56 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel
Cc: mikko.rapeli, Vlad Yasevich, Neil Horman, linux-sctp, linux-api
Fixes userspace compilation errors like:
linux/sctp.h:652:2: error: unknown type name ‘uint32_t’
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/sctp.h | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/include/uapi/linux/sctp.h b/include/uapi/linux/sctp.h
index ce70fe6..dd0a9c2 100644
--- a/include/uapi/linux/sctp.h
+++ b/include/uapi/linux/sctp.h
@@ -718,13 +718,13 @@ struct sctp_authkeyid {
*/
struct sctp_sack_info {
sctp_assoc_t sack_assoc_id;
- uint32_t sack_delay;
- uint32_t sack_freq;
+ __u32 sack_delay;
+ __u32 sack_freq;
};
struct sctp_assoc_value {
sctp_assoc_t assoc_id;
- uint32_t assoc_value;
+ __u32 assoc_value;
};
/*
@@ -794,7 +794,7 @@ struct sctp_status {
struct sctp_authchunks {
sctp_assoc_t gauth_assoc_id;
__u32 gauth_number_of_chunks;
- uint8_t gauth_chunks[];
+ __u8 gauth_chunks[];
};
/* The broken spelling has been released already in lksctp-tools header,
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 24/79] sctp.h: use __u8 and __u32 from linux/types.h
@ 2015-10-15 5:56 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel-u79uwXL29TY76Z2rM5mHXA
Cc: mikko.rapeli-X3B1VOXEql0, Vlad Yasevich, Neil Horman,
linux-sctp-u79uwXL29TY76Z2rM5mHXA,
linux-api-u79uwXL29TY76Z2rM5mHXA
Fixes userspace compilation errors like:
linux/sctp.h:652:2: error: unknown type name ‘uint32_t’
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/sctp.h | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/include/uapi/linux/sctp.h b/include/uapi/linux/sctp.h
index ce70fe6..dd0a9c2 100644
--- a/include/uapi/linux/sctp.h
+++ b/include/uapi/linux/sctp.h
@@ -718,13 +718,13 @@ struct sctp_authkeyid {
*/
struct sctp_sack_info {
sctp_assoc_t sack_assoc_id;
- uint32_t sack_delay;
- uint32_t sack_freq;
+ __u32 sack_delay;
+ __u32 sack_freq;
};
struct sctp_assoc_value {
sctp_assoc_t assoc_id;
- uint32_t assoc_value;
+ __u32 assoc_value;
};
/*
@@ -794,7 +794,7 @@ struct sctp_status {
struct sctp_authchunks {
sctp_assoc_t gauth_assoc_id;
__u32 gauth_number_of_chunks;
- uint8_t gauth_chunks[];
+ __u8 gauth_chunks[];
};
/* The broken spelling has been released already in lksctp-tools header,
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 24/79] sctp.h: use __u8 and __u32 from linux/types.h
@ 2015-10-15 5:56 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel-u79uwXL29TY76Z2rM5mHXA
Cc: mikko.rapeli-X3B1VOXEql0, Vlad Yasevich, Neil Horman,
linux-sctp-u79uwXL29TY76Z2rM5mHXA,
linux-api-u79uwXL29TY76Z2rM5mHXA
Fixes userspace compilation errors like:
linux/sctp.h:652:2: error: unknown type name ‘uint32_t’
Acked-by: Neil Horman <nhorman-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org>
Signed-off-by: Mikko Rapeli <mikko.rapeli-X3B1VOXEql0@public.gmane.org>
---
include/uapi/linux/sctp.h | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/include/uapi/linux/sctp.h b/include/uapi/linux/sctp.h
index ce70fe6..dd0a9c2 100644
--- a/include/uapi/linux/sctp.h
+++ b/include/uapi/linux/sctp.h
@@ -718,13 +718,13 @@ struct sctp_authkeyid {
*/
struct sctp_sack_info {
sctp_assoc_t sack_assoc_id;
- uint32_t sack_delay;
- uint32_t sack_freq;
+ __u32 sack_delay;
+ __u32 sack_freq;
};
struct sctp_assoc_value {
sctp_assoc_t assoc_id;
- uint32_t assoc_value;
+ __u32 assoc_value;
};
/*
@@ -794,7 +794,7 @@ struct sctp_status {
struct sctp_authchunks {
sctp_assoc_t gauth_assoc_id;
__u32 gauth_number_of_chunks;
- uint8_t gauth_chunks[];
+ __u8 gauth_chunks[];
};
/* The broken spelling has been released already in lksctp-tools header,
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 25/79] scsi_bsg_fc.h: use __u8, __u32 and __u64 from linux/types.h
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (23 preceding siblings ...)
2015-10-15 5:56 ` Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 26/79] scsi_netlink.h: use __u8, __u16 " Mikko Rapeli
` (55 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, linux-api
Fixes userspace compilation errors like:
scsi/scsi_bsg_fc.h:83:2: error: unknown type name ‘uint8_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/scsi/scsi_bsg_fc.h | 54 +++++++++++++++++++++--------------------
1 file changed, 28 insertions(+), 26 deletions(-)
diff --git a/include/uapi/scsi/scsi_bsg_fc.h b/include/uapi/scsi/scsi_bsg_fc.h
index 3031b90..0b3d18a 100644
--- a/include/uapi/scsi/scsi_bsg_fc.h
+++ b/include/uapi/scsi/scsi_bsg_fc.h
@@ -22,6 +22,8 @@
#ifndef SCSI_BSG_FC_H
#define SCSI_BSG_FC_H
+#include <linux/types.h>
+
/*
* This file intended to be included by both kernel and user space
*/
@@ -80,10 +82,10 @@
* with the transport upon completion of the login.
*/
struct fc_bsg_host_add_rport {
- uint8_t reserved;
+ __u8 reserved;
/* FC Address Identier of the remote port to login to */
- uint8_t port_id[3];
+ __u8 port_id[3];
};
/* Response:
@@ -101,10 +103,10 @@ struct fc_bsg_host_add_rport {
* remain logged in with the remote port.
*/
struct fc_bsg_host_del_rport {
- uint8_t reserved;
+ __u8 reserved;
/* FC Address Identier of the remote port to logout of */
- uint8_t port_id[3];
+ __u8 port_id[3];
};
/* Response:
@@ -125,10 +127,10 @@ struct fc_bsg_host_els {
* ELS Command Code being sent (must be the same as byte 0
* of the payload)
*/
- uint8_t command_code;
+ __u8 command_code;
/* FC Address Identier of the remote port to send the ELS to */
- uint8_t port_id[3];
+ __u8 port_id[3];
};
/* Response:
@@ -165,14 +167,14 @@ struct fc_bsg_ctels_reply {
* Note: x_RJT/BSY status will indicae that the rjt_data field
* is valid and contains the reason/explanation values.
*/
- uint32_t status; /* See FC_CTELS_STATUS_xxx */
+ __u32 status; /* See FC_CTELS_STATUS_xxx */
/* valid if status is not FC_CTELS_STATUS_OK */
struct {
- uint8_t action; /* fragment_id for CT REJECT */
- uint8_t reason_code;
- uint8_t reason_explanation;
- uint8_t vendor_unique;
+ __u8 action; /* fragment_id for CT REJECT */
+ __u8 reason_code;
+ __u8 reason_explanation;
+ __u8 vendor_unique;
} rjt_data;
};
@@ -188,17 +190,17 @@ struct fc_bsg_ctels_reply {
* and whether to tear it down after the request.
*/
struct fc_bsg_host_ct {
- uint8_t reserved;
+ __u8 reserved;
/* FC Address Identier of the remote port to send the ELS to */
- uint8_t port_id[3];
+ __u8 port_id[3];
/*
* We need words 0-2 of the generic preamble for the LLD's
*/
- uint32_t preamble_word0; /* revision & IN_ID */
- uint32_t preamble_word1; /* GS_Type, GS_SubType, Options, Rsvd */
- uint32_t preamble_word2; /* Cmd Code, Max Size */
+ __u32 preamble_word0; /* revision & IN_ID */
+ __u32 preamble_word1; /* GS_Type, GS_SubType, Options, Rsvd */
+ __u32 preamble_word2; /* Cmd Code, Max Size */
};
/* Response:
@@ -218,17 +220,17 @@ struct fc_bsg_host_vendor {
* Identifies the vendor that the message is formatted for. This
* should be the recipient of the message.
*/
- uint64_t vendor_id;
+ __u64 vendor_id;
/* start of vendor command area */
- uint32_t vendor_cmd[0];
+ __u32 vendor_cmd[0];
};
/* Response:
*/
struct fc_bsg_host_vendor_reply {
/* start of vendor response area */
- uint32_t vendor_rsp[0];
+ __u32 vendor_rsp[0];
};
@@ -247,7 +249,7 @@ struct fc_bsg_rport_els {
* ELS Command Code being sent (must be the same as
* byte 0 of the payload)
*/
- uint8_t els_code;
+ __u8 els_code;
};
/* Response:
@@ -265,9 +267,9 @@ struct fc_bsg_rport_ct {
/*
* We need words 0-2 of the generic preamble for the LLD's
*/
- uint32_t preamble_word0; /* revision & IN_ID */
- uint32_t preamble_word1; /* GS_Type, GS_SubType, Options, Rsvd */
- uint32_t preamble_word2; /* Cmd Code, Max Size */
+ __u32 preamble_word0; /* revision & IN_ID */
+ __u32 preamble_word1; /* GS_Type, GS_SubType, Options, Rsvd */
+ __u32 preamble_word2; /* Cmd Code, Max Size */
};
/* Response:
*
@@ -279,7 +281,7 @@ struct fc_bsg_rport_ct {
/* request (CDB) structure of the sg_io_v4 */
struct fc_bsg_request {
- uint32_t msgcode;
+ __u32 msgcode;
union {
struct fc_bsg_host_add_rport h_addrport;
struct fc_bsg_host_del_rport h_delrport;
@@ -303,10 +305,10 @@ struct fc_bsg_reply {
* msg and status fields. The per-msgcode reply structure
* will contain valid data.
*/
- uint32_t result;
+ __u32 result;
/* If there was reply_payload, how much was recevied ? */
- uint32_t reply_payload_rcv_len;
+ __u32 reply_payload_rcv_len;
union {
struct fc_bsg_host_vendor_reply vendor_reply;
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 26/79] scsi_netlink.h: use __u8, __u16 and __u64 from linux/types.h
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (24 preceding siblings ...)
2015-10-15 5:56 ` [PATCH v4 25/79] scsi_bsg_fc.h: use __u8, __u32 and __u64 " Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 27/79] scsi_netlink_fc.h: use __u16, __u32 " Mikko Rapeli
` (54 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, linux-api
Fixes userspace compilation errors like:
scsi/scsi_netlink.h:43:2: error: unknown type name ‘uint8_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/scsi/scsi_netlink.h | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/include/uapi/scsi/scsi_netlink.h b/include/uapi/scsi/scsi_netlink.h
index 62b4eda..36b53a76 100644
--- a/include/uapi/scsi/scsi_netlink.h
+++ b/include/uapi/scsi/scsi_netlink.h
@@ -22,8 +22,8 @@
#ifndef SCSI_NETLINK_H
#define SCSI_NETLINK_H
-#include <linux/netlink.h>
#include <linux/types.h>
+#include <linux/netlink.h>
/*
* This file intended to be included by both kernel and user space
@@ -40,12 +40,12 @@
/* SCSI_TRANSPORT_MSG event message header */
struct scsi_nl_hdr {
- uint8_t version;
- uint8_t transport;
- uint16_t magic;
- uint16_t msgtype;
- uint16_t msglen;
-} __attribute__((aligned(sizeof(uint64_t))));
+ __u8 version;
+ __u8 transport;
+ __u16 magic;
+ __u16 msgtype;
+ __u16 msglen;
+} __attribute__((aligned(sizeof(__u64))));
/* scsi_nl_hdr->version value */
#define SCSI_NL_VERSION 1
@@ -89,10 +89,10 @@ struct scsi_nl_hdr {
*/
struct scsi_nl_host_vendor_msg {
struct scsi_nl_hdr snlh; /* must be 1st element ! */
- uint64_t vendor_id;
- uint16_t host_no;
- uint16_t vmsg_datalen;
-} __attribute__((aligned(sizeof(uint64_t))));
+ __u64 vendor_id;
+ __u16 host_no;
+ __u16 vmsg_datalen;
+} __attribute__((aligned(sizeof(__u64))));
/*
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 27/79] scsi_netlink_fc.h: use __u16, __u32 and __u64 from linux/types.h
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (25 preceding siblings ...)
2015-10-15 5:56 ` [PATCH v4 26/79] scsi_netlink.h: use __u8, __u16 " Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` Mikko Rapeli
` (53 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, linux-api
Fixes userspace compilation errors like:
scsi/scsi_netlink_fc.h:60:2: error: expected specifier-qualifier-list before ‘uint64_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/scsi/scsi_netlink_fc.h | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/include/uapi/scsi/scsi_netlink_fc.h b/include/uapi/scsi/scsi_netlink_fc.h
index cbf76e4..2493a0f 100644
--- a/include/uapi/scsi/scsi_netlink_fc.h
+++ b/include/uapi/scsi/scsi_netlink_fc.h
@@ -57,14 +57,14 @@
*/
struct fc_nl_event {
struct scsi_nl_hdr snlh; /* must be 1st element ! */
- uint64_t seconds;
- uint64_t vendor_id;
- uint16_t host_no;
- uint16_t event_datalen;
- uint32_t event_num;
- uint32_t event_code;
- uint32_t event_data;
-} __attribute__((aligned(sizeof(uint64_t))));
+ __u64 seconds;
+ __u64 vendor_id;
+ __u16 host_no;
+ __u16 event_datalen;
+ __u32 event_num;
+ __u32 event_code;
+ __u32 event_data;
+} __attribute__((aligned(sizeof(__u64))));
#endif /* SCSI_NETLINK_FC_H */
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 28/79] hdspm.h: use __u8, __u32 and __u64 from linux/types.h instead of stdint.h
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:55 ` [PATCH v4 02/79] scripts/headers_compile_test.sh: compile test script for exported headers Mikko Rapeli
` (79 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel
Cc: mikko.rapeli, Jaroslav Kysela, Takashi Iwai, alsa-devel, linux-api
Kernel headers should use linux/types.h based definitions.
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/sound/hdspm.h | 40 ++++++++++++++++++----------------------
1 file changed, 18 insertions(+), 22 deletions(-)
diff --git a/include/uapi/sound/hdspm.h b/include/uapi/sound/hdspm.h
index 5737332..c4db6f5 100644
--- a/include/uapi/sound/hdspm.h
+++ b/include/uapi/sound/hdspm.h
@@ -20,11 +20,7 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#ifdef __KERNEL__
#include <linux/types.h>
-#else
-#include <stdint.h>
-#endif
/* Maximum channels is 64 even on 56Mode you have 64playbacks to matrix */
#define HDSPM_MAX_CHANNELS 64
@@ -46,15 +42,15 @@ enum hdspm_speed {
/* -------------------- IOCTL Peak/RMS Meters -------------------- */
struct hdspm_peak_rms {
- uint32_t input_peaks[64];
- uint32_t playback_peaks[64];
- uint32_t output_peaks[64];
+ __u32 input_peaks[64];
+ __u32 playback_peaks[64];
+ __u32 output_peaks[64];
- uint64_t input_rms[64];
- uint64_t playback_rms[64];
- uint64_t output_rms[64];
+ __u64 input_rms[64];
+ __u64 playback_rms[64];
+ __u64 output_rms[64];
- uint8_t speed; /* enum {ss, ds, qs} */
+ __u8 speed; /* enum {ss, ds, qs} */
int status2;
};
@@ -155,21 +151,21 @@ enum hdspm_syncsource {
};
struct hdspm_status {
- uint8_t card_type; /* enum hdspm_io_type */
+ __u8 card_type; /* enum hdspm_io_type */
enum hdspm_syncsource autosync_source;
- uint64_t card_clock;
- uint32_t master_period;
+ __u64 card_clock;
+ __u32 master_period;
union {
struct {
- uint8_t sync_wc; /* enum hdspm_sync */
- uint8_t sync_madi; /* enum hdspm_sync */
- uint8_t sync_tco; /* enum hdspm_sync */
- uint8_t sync_in; /* enum hdspm_sync */
- uint8_t madi_input; /* enum hdspm_madi_input */
- uint8_t channel_format; /* enum hdspm_madi_channel_format */
- uint8_t frame_format; /* enum hdspm_madi_frame_format */
+ __u8 sync_wc; /* enum hdspm_sync */
+ __u8 sync_madi; /* enum hdspm_sync */
+ __u8 sync_tco; /* enum hdspm_sync */
+ __u8 sync_in; /* enum hdspm_sync */
+ __u8 madi_input; /* enum hdspm_madi_input */
+ __u8 channel_format; /* enum hdspm_madi_channel_format */
+ __u8 frame_format; /* enum hdspm_madi_frame_format */
} madi;
} card_specific;
};
@@ -184,7 +180,7 @@ struct hdspm_status {
#define HDSPM_ADDON_TCO 1
struct hdspm_version {
- uint8_t card_type; /* enum hdspm_io_type */
+ __u8 card_type; /* enum hdspm_io_type */
char cardname[20];
unsigned int serial;
unsigned short firmware_rev;
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 28/79] hdspm.h: use __u8, __u32 and __u64 from linux/types.h instead of stdint.h
@ 2015-10-15 5:56 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, alsa-devel, linux-api, Takashi Iwai
Kernel headers should use linux/types.h based definitions.
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/sound/hdspm.h | 40 ++++++++++++++++++----------------------
1 file changed, 18 insertions(+), 22 deletions(-)
diff --git a/include/uapi/sound/hdspm.h b/include/uapi/sound/hdspm.h
index 5737332..c4db6f5 100644
--- a/include/uapi/sound/hdspm.h
+++ b/include/uapi/sound/hdspm.h
@@ -20,11 +20,7 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#ifdef __KERNEL__
#include <linux/types.h>
-#else
-#include <stdint.h>
-#endif
/* Maximum channels is 64 even on 56Mode you have 64playbacks to matrix */
#define HDSPM_MAX_CHANNELS 64
@@ -46,15 +42,15 @@ enum hdspm_speed {
/* -------------------- IOCTL Peak/RMS Meters -------------------- */
struct hdspm_peak_rms {
- uint32_t input_peaks[64];
- uint32_t playback_peaks[64];
- uint32_t output_peaks[64];
+ __u32 input_peaks[64];
+ __u32 playback_peaks[64];
+ __u32 output_peaks[64];
- uint64_t input_rms[64];
- uint64_t playback_rms[64];
- uint64_t output_rms[64];
+ __u64 input_rms[64];
+ __u64 playback_rms[64];
+ __u64 output_rms[64];
- uint8_t speed; /* enum {ss, ds, qs} */
+ __u8 speed; /* enum {ss, ds, qs} */
int status2;
};
@@ -155,21 +151,21 @@ enum hdspm_syncsource {
};
struct hdspm_status {
- uint8_t card_type; /* enum hdspm_io_type */
+ __u8 card_type; /* enum hdspm_io_type */
enum hdspm_syncsource autosync_source;
- uint64_t card_clock;
- uint32_t master_period;
+ __u64 card_clock;
+ __u32 master_period;
union {
struct {
- uint8_t sync_wc; /* enum hdspm_sync */
- uint8_t sync_madi; /* enum hdspm_sync */
- uint8_t sync_tco; /* enum hdspm_sync */
- uint8_t sync_in; /* enum hdspm_sync */
- uint8_t madi_input; /* enum hdspm_madi_input */
- uint8_t channel_format; /* enum hdspm_madi_channel_format */
- uint8_t frame_format; /* enum hdspm_madi_frame_format */
+ __u8 sync_wc; /* enum hdspm_sync */
+ __u8 sync_madi; /* enum hdspm_sync */
+ __u8 sync_tco; /* enum hdspm_sync */
+ __u8 sync_in; /* enum hdspm_sync */
+ __u8 madi_input; /* enum hdspm_madi_input */
+ __u8 channel_format; /* enum hdspm_madi_channel_format */
+ __u8 frame_format; /* enum hdspm_madi_frame_format */
} madi;
} card_specific;
};
@@ -184,7 +180,7 @@ struct hdspm_status {
#define HDSPM_ADDON_TCO 1
struct hdspm_version {
- uint8_t card_type; /* enum hdspm_io_type */
+ __u8 card_type; /* enum hdspm_io_type */
char cardname[20];
unsigned int serial;
unsigned short firmware_rev;
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 29/79] gntalloc.h: use __u16, __u32 and __u64 from linux/types.h
@ 2015-10-15 5:56 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel
Cc: mikko.rapeli, Konrad Rzeszutek Wilk, Boris Ostrovsky,
David Vrabel, xen-devel, linux-api
Fixes userspace compilation errors like:
xen/gntalloc.h:22:2: error: unknown type name ‘uint16_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/xen/gntalloc.h | 22 ++++++++++++----------
1 file changed, 12 insertions(+), 10 deletions(-)
diff --git a/include/uapi/xen/gntalloc.h b/include/uapi/xen/gntalloc.h
index 76bd580..48d2790 100644
--- a/include/uapi/xen/gntalloc.h
+++ b/include/uapi/xen/gntalloc.h
@@ -11,6 +11,8 @@
#ifndef __LINUX_PUBLIC_GNTALLOC_H__
#define __LINUX_PUBLIC_GNTALLOC_H__
+#include <linux/types.h>
+
/*
* Allocates a new page and creates a new grant reference.
*/
@@ -19,17 +21,17 @@ _IOC(_IOC_NONE, 'G', 5, sizeof(struct ioctl_gntalloc_alloc_gref))
struct ioctl_gntalloc_alloc_gref {
/* IN parameters */
/* The ID of the domain to be given access to the grants. */
- uint16_t domid;
+ __u16 domid;
/* Flags for this mapping */
- uint16_t flags;
+ __u16 flags;
/* Number of pages to map */
- uint32_t count;
+ __u32 count;
/* OUT parameters */
/* The offset to be used on a subsequent call to mmap(). */
- uint64_t index;
+ __u64 index;
/* The grant references of the newly created grant, one per page */
/* Variable size, depending on count */
- uint32_t gref_ids[1];
+ __u32 gref_ids[1];
};
#define GNTALLOC_FLAG_WRITABLE 1
@@ -43,9 +45,9 @@ _IOC(_IOC_NONE, 'G', 6, sizeof(struct ioctl_gntalloc_dealloc_gref))
struct ioctl_gntalloc_dealloc_gref {
/* IN parameters */
/* The offset returned in the map operation */
- uint64_t index;
+ __u64 index;
/* Number of references to unmap */
- uint32_t count;
+ __u32 count;
};
/*
@@ -67,11 +69,11 @@ struct ioctl_gntalloc_unmap_notify {
* be cleared. Otherwise, it can be any byte in the page whose
* notification we are adjusting.
*/
- uint64_t index;
+ __u64 index;
/* Action(s) to take on unmap */
- uint32_t action;
+ __u32 action;
/* Event channel to notify */
- uint32_t event_channel_port;
+ __u32 event_channel_port;
};
/* Clear (set to zero) the byte specified by index */
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 29/79] gntalloc.h: use __u16, __u32 and __u64 from linux/types.h
@ 2015-10-15 5:56 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel-u79uwXL29TY76Z2rM5mHXA
Cc: mikko.rapeli-X3B1VOXEql0, Konrad Rzeszutek Wilk, Boris Ostrovsky,
David Vrabel, xen-devel-GuqFBffKawtpuQazS67q72D2FQJk+8+b,
linux-api-u79uwXL29TY76Z2rM5mHXA
Fixes userspace compilation errors like:
xen/gntalloc.h:22:2: error: unknown type name ‘uint16_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli-X3B1VOXEql0@public.gmane.org>
---
include/uapi/xen/gntalloc.h | 22 ++++++++++++----------
1 file changed, 12 insertions(+), 10 deletions(-)
diff --git a/include/uapi/xen/gntalloc.h b/include/uapi/xen/gntalloc.h
index 76bd580..48d2790 100644
--- a/include/uapi/xen/gntalloc.h
+++ b/include/uapi/xen/gntalloc.h
@@ -11,6 +11,8 @@
#ifndef __LINUX_PUBLIC_GNTALLOC_H__
#define __LINUX_PUBLIC_GNTALLOC_H__
+#include <linux/types.h>
+
/*
* Allocates a new page and creates a new grant reference.
*/
@@ -19,17 +21,17 @@ _IOC(_IOC_NONE, 'G', 5, sizeof(struct ioctl_gntalloc_alloc_gref))
struct ioctl_gntalloc_alloc_gref {
/* IN parameters */
/* The ID of the domain to be given access to the grants. */
- uint16_t domid;
+ __u16 domid;
/* Flags for this mapping */
- uint16_t flags;
+ __u16 flags;
/* Number of pages to map */
- uint32_t count;
+ __u32 count;
/* OUT parameters */
/* The offset to be used on a subsequent call to mmap(). */
- uint64_t index;
+ __u64 index;
/* The grant references of the newly created grant, one per page */
/* Variable size, depending on count */
- uint32_t gref_ids[1];
+ __u32 gref_ids[1];
};
#define GNTALLOC_FLAG_WRITABLE 1
@@ -43,9 +45,9 @@ _IOC(_IOC_NONE, 'G', 6, sizeof(struct ioctl_gntalloc_dealloc_gref))
struct ioctl_gntalloc_dealloc_gref {
/* IN parameters */
/* The offset returned in the map operation */
- uint64_t index;
+ __u64 index;
/* Number of references to unmap */
- uint32_t count;
+ __u32 count;
};
/*
@@ -67,11 +69,11 @@ struct ioctl_gntalloc_unmap_notify {
* be cleared. Otherwise, it can be any byte in the page whose
* notification we are adjusting.
*/
- uint64_t index;
+ __u64 index;
/* Action(s) to take on unmap */
- uint32_t action;
+ __u32 action;
/* Event channel to notify */
- uint32_t event_channel_port;
+ __u32 event_channel_port;
};
/* Clear (set to zero) the byte specified by index */
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 29/79] gntalloc.h: use __u16, __u32 and __u64 from linux/types.h
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (27 preceding siblings ...)
2015-10-15 5:56 ` Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` Mikko Rapeli
` (51 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel
Cc: mikko.rapeli, David Vrabel, linux-api, xen-devel, Boris Ostrovsky
Fixes userspace compilation errors like:
xen/gntalloc.h:22:2: error: unknown type name ‘uint16_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/xen/gntalloc.h | 22 ++++++++++++----------
1 file changed, 12 insertions(+), 10 deletions(-)
diff --git a/include/uapi/xen/gntalloc.h b/include/uapi/xen/gntalloc.h
index 76bd580..48d2790 100644
--- a/include/uapi/xen/gntalloc.h
+++ b/include/uapi/xen/gntalloc.h
@@ -11,6 +11,8 @@
#ifndef __LINUX_PUBLIC_GNTALLOC_H__
#define __LINUX_PUBLIC_GNTALLOC_H__
+#include <linux/types.h>
+
/*
* Allocates a new page and creates a new grant reference.
*/
@@ -19,17 +21,17 @@ _IOC(_IOC_NONE, 'G', 5, sizeof(struct ioctl_gntalloc_alloc_gref))
struct ioctl_gntalloc_alloc_gref {
/* IN parameters */
/* The ID of the domain to be given access to the grants. */
- uint16_t domid;
+ __u16 domid;
/* Flags for this mapping */
- uint16_t flags;
+ __u16 flags;
/* Number of pages to map */
- uint32_t count;
+ __u32 count;
/* OUT parameters */
/* The offset to be used on a subsequent call to mmap(). */
- uint64_t index;
+ __u64 index;
/* The grant references of the newly created grant, one per page */
/* Variable size, depending on count */
- uint32_t gref_ids[1];
+ __u32 gref_ids[1];
};
#define GNTALLOC_FLAG_WRITABLE 1
@@ -43,9 +45,9 @@ _IOC(_IOC_NONE, 'G', 6, sizeof(struct ioctl_gntalloc_dealloc_gref))
struct ioctl_gntalloc_dealloc_gref {
/* IN parameters */
/* The offset returned in the map operation */
- uint64_t index;
+ __u64 index;
/* Number of references to unmap */
- uint32_t count;
+ __u32 count;
};
/*
@@ -67,11 +69,11 @@ struct ioctl_gntalloc_unmap_notify {
* be cleared. Otherwise, it can be any byte in the page whose
* notification we are adjusting.
*/
- uint64_t index;
+ __u64 index;
/* Action(s) to take on unmap */
- uint32_t action;
+ __u32 action;
/* Event channel to notify */
- uint32_t event_channel_port;
+ __u32 event_channel_port;
};
/* Clear (set to zero) the byte specified by index */
--
2.5.0
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 30/79] gntdev.h: use __u32 and __u64 from linux/types.h
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:55 ` [PATCH v4 02/79] scripts/headers_compile_test.sh: compile test script for exported headers Mikko Rapeli
` (79 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel
Cc: mikko.rapeli, Konrad Rzeszutek Wilk, Boris Ostrovsky,
David Vrabel, xen-devel, linux-api
Fixes userspace compilation errors like:
xen/gntdev.h:38:2: error: unknown type name ‘uint32_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/xen/gntdev.h | 34 ++++++++++++++++++----------------
1 file changed, 18 insertions(+), 16 deletions(-)
diff --git a/include/uapi/xen/gntdev.h b/include/uapi/xen/gntdev.h
index 5304bd3..aa7610a 100644
--- a/include/uapi/xen/gntdev.h
+++ b/include/uapi/xen/gntdev.h
@@ -33,11 +33,13 @@
#ifndef __LINUX_PUBLIC_GNTDEV_H__
#define __LINUX_PUBLIC_GNTDEV_H__
+#include <linux/types.h>
+
struct ioctl_gntdev_grant_ref {
/* The domain ID of the grant to be mapped. */
- uint32_t domid;
+ __u32 domid;
/* The grant reference of the grant to be mapped. */
- uint32_t ref;
+ __u32 ref;
};
/*
@@ -50,11 +52,11 @@ _IOC(_IOC_NONE, 'G', 0, sizeof(struct ioctl_gntdev_map_grant_ref))
struct ioctl_gntdev_map_grant_ref {
/* IN parameters */
/* The number of grants to be mapped. */
- uint32_t count;
- uint32_t pad;
+ __u32 count;
+ __u32 pad;
/* OUT parameters */
/* The offset to be used on a subsequent call to mmap(). */
- uint64_t index;
+ __u64 index;
/* Variable IN parameter. */
/* Array of grant references, of size @count. */
struct ioctl_gntdev_grant_ref refs[1];
@@ -70,10 +72,10 @@ _IOC(_IOC_NONE, 'G', 1, sizeof(struct ioctl_gntdev_unmap_grant_ref))
struct ioctl_gntdev_unmap_grant_ref {
/* IN parameters */
/* The offset was returned by the corresponding map operation. */
- uint64_t index;
+ __u64 index;
/* The number of pages to be unmapped. */
- uint32_t count;
- uint32_t pad;
+ __u32 count;
+ __u32 pad;
};
/*
@@ -93,13 +95,13 @@ _IOC(_IOC_NONE, 'G', 2, sizeof(struct ioctl_gntdev_get_offset_for_vaddr))
struct ioctl_gntdev_get_offset_for_vaddr {
/* IN parameters */
/* The virtual address of the first mapped page in a range. */
- uint64_t vaddr;
+ __u64 vaddr;
/* OUT parameters */
/* The offset that was used in the initial mmap() operation. */
- uint64_t offset;
+ __u64 offset;
/* The number of pages mapped in the VM area that begins at @vaddr. */
- uint32_t count;
- uint32_t pad;
+ __u32 count;
+ __u32 pad;
};
/*
@@ -113,7 +115,7 @@ _IOC(_IOC_NONE, 'G', 3, sizeof(struct ioctl_gntdev_set_max_grants))
struct ioctl_gntdev_set_max_grants {
/* IN parameter */
/* The maximum number of grants that may be mapped at once. */
- uint32_t count;
+ __u32 count;
};
/*
@@ -135,11 +137,11 @@ struct ioctl_gntdev_unmap_notify {
* be cleared. Otherwise, it can be any byte in the page whose
* notification we are adjusting.
*/
- uint64_t index;
+ __u64 index;
/* Action(s) to take on unmap */
- uint32_t action;
+ __u32 action;
/* Event channel to notify */
- uint32_t event_channel_port;
+ __u32 event_channel_port;
};
/* Clear (set to zero) the byte specified by index */
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 30/79] gntdev.h: use __u32 and __u64 from linux/types.h
@ 2015-10-15 5:56 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel
Cc: mikko.rapeli, David Vrabel, linux-api, xen-devel, Boris Ostrovsky
Fixes userspace compilation errors like:
xen/gntdev.h:38:2: error: unknown type name ‘uint32_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/xen/gntdev.h | 34 ++++++++++++++++++----------------
1 file changed, 18 insertions(+), 16 deletions(-)
diff --git a/include/uapi/xen/gntdev.h b/include/uapi/xen/gntdev.h
index 5304bd3..aa7610a 100644
--- a/include/uapi/xen/gntdev.h
+++ b/include/uapi/xen/gntdev.h
@@ -33,11 +33,13 @@
#ifndef __LINUX_PUBLIC_GNTDEV_H__
#define __LINUX_PUBLIC_GNTDEV_H__
+#include <linux/types.h>
+
struct ioctl_gntdev_grant_ref {
/* The domain ID of the grant to be mapped. */
- uint32_t domid;
+ __u32 domid;
/* The grant reference of the grant to be mapped. */
- uint32_t ref;
+ __u32 ref;
};
/*
@@ -50,11 +52,11 @@ _IOC(_IOC_NONE, 'G', 0, sizeof(struct ioctl_gntdev_map_grant_ref))
struct ioctl_gntdev_map_grant_ref {
/* IN parameters */
/* The number of grants to be mapped. */
- uint32_t count;
- uint32_t pad;
+ __u32 count;
+ __u32 pad;
/* OUT parameters */
/* The offset to be used on a subsequent call to mmap(). */
- uint64_t index;
+ __u64 index;
/* Variable IN parameter. */
/* Array of grant references, of size @count. */
struct ioctl_gntdev_grant_ref refs[1];
@@ -70,10 +72,10 @@ _IOC(_IOC_NONE, 'G', 1, sizeof(struct ioctl_gntdev_unmap_grant_ref))
struct ioctl_gntdev_unmap_grant_ref {
/* IN parameters */
/* The offset was returned by the corresponding map operation. */
- uint64_t index;
+ __u64 index;
/* The number of pages to be unmapped. */
- uint32_t count;
- uint32_t pad;
+ __u32 count;
+ __u32 pad;
};
/*
@@ -93,13 +95,13 @@ _IOC(_IOC_NONE, 'G', 2, sizeof(struct ioctl_gntdev_get_offset_for_vaddr))
struct ioctl_gntdev_get_offset_for_vaddr {
/* IN parameters */
/* The virtual address of the first mapped page in a range. */
- uint64_t vaddr;
+ __u64 vaddr;
/* OUT parameters */
/* The offset that was used in the initial mmap() operation. */
- uint64_t offset;
+ __u64 offset;
/* The number of pages mapped in the VM area that begins at @vaddr. */
- uint32_t count;
- uint32_t pad;
+ __u32 count;
+ __u32 pad;
};
/*
@@ -113,7 +115,7 @@ _IOC(_IOC_NONE, 'G', 3, sizeof(struct ioctl_gntdev_set_max_grants))
struct ioctl_gntdev_set_max_grants {
/* IN parameter */
/* The maximum number of grants that may be mapped at once. */
- uint32_t count;
+ __u32 count;
};
/*
@@ -135,11 +137,11 @@ struct ioctl_gntdev_unmap_notify {
* be cleared. Otherwise, it can be any byte in the page whose
* notification we are adjusting.
*/
- uint64_t index;
+ __u64 index;
/* Action(s) to take on unmap */
- uint32_t action;
+ __u32 action;
/* Event channel to notify */
- uint32_t event_channel_port;
+ __u32 event_channel_port;
};
/* Clear (set to zero) the byte specified by index */
--
2.5.0
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 31/79] include/uapi/linux/sysctl.h: use __kernel_size_t instead of size_t
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (30 preceding siblings ...)
2015-10-15 5:56 ` Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 32/79] include/uapi/asm-generic/ipcbuf.h: include linux/posix_types.h Mikko Rapeli
` (48 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel
Cc: mikko.rapeli, Yasuaki Ishimatsu, Prarit Bhargava, Andrew Morton,
linux-api
Fixes userspace compilation error:
error: unknown type name ‘size_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/sysctl.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/uapi/linux/sysctl.h b/include/uapi/linux/sysctl.h
index 0956373..6595f3a 100644
--- a/include/uapi/linux/sysctl.h
+++ b/include/uapi/linux/sysctl.h
@@ -37,9 +37,9 @@ struct __sysctl_args {
int __user *name;
int nlen;
void __user *oldval;
- size_t __user *oldlenp;
+ __kernel_size_t __user *oldlenp;
void __user *newval;
- size_t newlen;
+ __kernel_size_t newlen;
unsigned long __unused[4];
};
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 32/79] include/uapi/asm-generic/ipcbuf.h: include linux/posix_types.h
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (31 preceding siblings ...)
2015-10-15 5:56 ` [PATCH v4 31/79] include/uapi/linux/sysctl.h: use __kernel_size_t instead of size_t Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 33/79] include/uapi/asm-generic/msgbuf.h: include asm/ipcbuf.h Mikko Rapeli
` (47 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, Arnd Bergmann, linux-arch, linux-api
Fixes userspace compilation error:
error: unknown type name ‘__kernel_key_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/asm-generic/ipcbuf.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/uapi/asm-generic/ipcbuf.h b/include/uapi/asm-generic/ipcbuf.h
index 3dbcc1e..909f825 100644
--- a/include/uapi/asm-generic/ipcbuf.h
+++ b/include/uapi/asm-generic/ipcbuf.h
@@ -1,6 +1,8 @@
#ifndef __ASM_GENERIC_IPCBUF_H
#define __ASM_GENERIC_IPCBUF_H
+#include <linux/posix_types.h>
+
/*
* The generic ipc64_perm structure:
* Note extra padding because this structure is passed back and forth
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 33/79] include/uapi/asm-generic/msgbuf.h: include asm/ipcbuf.h
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (32 preceding siblings ...)
2015-10-15 5:56 ` [PATCH v4 32/79] include/uapi/asm-generic/ipcbuf.h: include linux/posix_types.h Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 34/79] include/uapi/asm-generic/shmbuf.h: include fixes Mikko Rapeli
` (46 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, Arnd Bergmann, linux-arch, linux-api
Fixes userspace compilation errors like:
error: field ‘msg_perm’ has incomplete type
struct ipc64_perm msg_perm
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/asm-generic/msgbuf.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/uapi/asm-generic/msgbuf.h b/include/uapi/asm-generic/msgbuf.h
index f55ecc4..f5fbd8e 100644
--- a/include/uapi/asm-generic/msgbuf.h
+++ b/include/uapi/asm-generic/msgbuf.h
@@ -2,6 +2,8 @@
#define __ASM_GENERIC_MSGBUF_H
#include <asm/bitsperlong.h>
+#include <asm/ipcbuf.h>
+
/*
* generic msqid64_ds structure.
*
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 34/79] include/uapi/asm-generic/shmbuf.h: include fixes
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (33 preceding siblings ...)
2015-10-15 5:56 ` [PATCH v4 33/79] include/uapi/asm-generic/msgbuf.h: include asm/ipcbuf.h Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` Mikko Rapeli
` (45 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, Arnd Bergmann, linux-arch, linux-api
Include linux/types.h and asm/msgbuf.h and use __kernel_size_t instead
of size_t.
Fixes userspace compilation errors like:
error: field ‘shm_perm’ has incomplete type
struct ipc64_perm shm_perm; /* operation perms */
error: unknown type name ‘size_t’
error: unknown type name ‘__kernel_time_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/asm-generic/shmbuf.h | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/include/uapi/asm-generic/shmbuf.h b/include/uapi/asm-generic/shmbuf.h
index 7e9fb2f..ae867ad 100644
--- a/include/uapi/asm-generic/shmbuf.h
+++ b/include/uapi/asm-generic/shmbuf.h
@@ -1,7 +1,9 @@
#ifndef __ASM_GENERIC_SHMBUF_H
#define __ASM_GENERIC_SHMBUF_H
+#include <linux/types.h>
#include <asm/bitsperlong.h>
+#include <asm/msgbuf.h>
/*
* The shmid64_ds structure for x86 architecture.
@@ -24,7 +26,7 @@
struct shmid64_ds {
struct ipc64_perm shm_perm; /* operation perms */
- size_t shm_segsz; /* size of segment (bytes) */
+ __kernel_size_t shm_segsz; /* size of segment (bytes) */
__kernel_time_t shm_atime; /* last attach time */
#if __BITS_PER_LONG != 64
unsigned long __unused1;
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 35/79] asm-generic/sembuf.h: include asm/posix_types.h and asm/ipcbuf.h
@ 2015-10-15 5:56 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, Arnd Bergmann, linux-arch, linux-api
Fixes userspace compilation errors like:
error: field ‘msg_perm’ has incomplete type
struct ipc64_perm msg_perm;
error: unknown type name ‘__kernel_ulong_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/asm-generic/sembuf.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/uapi/asm-generic/sembuf.h b/include/uapi/asm-generic/sembuf.h
index 4cb2c13..17d523f 100644
--- a/include/uapi/asm-generic/sembuf.h
+++ b/include/uapi/asm-generic/sembuf.h
@@ -2,6 +2,8 @@
#define __ASM_GENERIC_SEMBUF_H
#include <asm/bitsperlong.h>
+#include <asm/posix_types.h>
+#include <asm/ipcbuf.h>
/*
* The semid64_ds structure for x86 architecture.
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 35/79] asm-generic/sembuf.h: include asm/posix_types.h and asm/ipcbuf.h
@ 2015-10-15 5:56 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel-u79uwXL29TY76Z2rM5mHXA
Cc: mikko.rapeli-X3B1VOXEql0, Arnd Bergmann,
linux-arch-u79uwXL29TY76Z2rM5mHXA,
linux-api-u79uwXL29TY76Z2rM5mHXA
Fixes userspace compilation errors like:
error: field ‘msg_perm’ has incomplete type
struct ipc64_perm msg_perm;
error: unknown type name ‘__kernel_ulong_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli-X3B1VOXEql0@public.gmane.org>
---
include/uapi/asm-generic/sembuf.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/uapi/asm-generic/sembuf.h b/include/uapi/asm-generic/sembuf.h
index 4cb2c13..17d523f 100644
--- a/include/uapi/asm-generic/sembuf.h
+++ b/include/uapi/asm-generic/sembuf.h
@@ -2,6 +2,8 @@
#define __ASM_GENERIC_SEMBUF_H
#include <asm/bitsperlong.h>
+#include <asm/posix_types.h>
+#include <asm/ipcbuf.h>
/*
* The semid64_ds structure for x86 architecture.
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 36/79] include/uapi/asm-generic/signal.h: use __kernel_size_t instead of size_t
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (35 preceding siblings ...)
2015-10-15 5:56 ` Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 37/79] include/uapi/linux/socket.h: include sys/socket.h in userspace Mikko Rapeli
` (43 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, Arnd Bergmann, linux-arch, linux-api
Fixes userspace compiler error:
error: unknown type name ‘size_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/asm-generic/signal.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/uapi/asm-generic/signal.h b/include/uapi/asm-generic/signal.h
index 9df61f1..0a7c415 100644
--- a/include/uapi/asm-generic/signal.h
+++ b/include/uapi/asm-generic/signal.h
@@ -111,7 +111,7 @@ struct sigaction {
typedef struct sigaltstack {
void __user *ss_sp;
int ss_flags;
- size_t ss_size;
+ __kernel_size_t ss_size;
} stack_t;
#endif /* __ASSEMBLY__ */
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 37/79] include/uapi/linux/socket.h: include sys/socket.h in userspace
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (36 preceding siblings ...)
2015-10-15 5:56 ` [PATCH v4 36/79] include/uapi/asm-generic/signal.h: use __kernel_size_t instead of size_t Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 38/79] include/uapi/linux/rds.h: include linux/socket.h and linux/types.h Mikko Rapeli
` (42 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, linux-api
This libc header has sockaddr definition for userspace.
Fixes userspace compilation errors like these from kernel headers including
only linux/socket.h:
error: field ‘ifru_addr’ has incomplete type
struct sockaddr ifru_addr;
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/socket.h | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/include/uapi/linux/socket.h b/include/uapi/linux/socket.h
index 76ab0c6..8a81197 100644
--- a/include/uapi/linux/socket.h
+++ b/include/uapi/linux/socket.h
@@ -1,6 +1,10 @@
#ifndef _UAPI_LINUX_SOCKET_H
#define _UAPI_LINUX_SOCKET_H
+#ifndef __KERNEL__
+#include <sys/socket.h>
+#endif
+
/*
* Desired design of maximum size and alignment (see RFC2553)
*/
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 38/79] include/uapi/linux/rds.h: include linux/socket.h and linux/types.h
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (37 preceding siblings ...)
2015-10-15 5:56 ` [PATCH v4 37/79] include/uapi/linux/socket.h: include sys/socket.h in userspace Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 11:10 ` Sowmini Varadhan
2015-10-15 5:56 ` [PATCH v4 39/79] include/uapi/linux/if_pppox.h: include linux/if.h Mikko Rapeli
` (41 subsequent siblings)
80 siblings, 1 reply; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, David S. Miller, Sowmini Varadhan, linux-api
Fixes userspace compilation errors like:
error: unknown type name ‘__be32’
error: field ‘dest_addr’ has incomplete type
struct sockaddr_storage dest_addr;
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/rds.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/uapi/linux/rds.h b/include/uapi/linux/rds.h
index 539f9f8..3bf329f 100644
--- a/include/uapi/linux/rds.h
+++ b/include/uapi/linux/rds.h
@@ -35,6 +35,7 @@
#define _LINUX_RDS_H
#include <linux/types.h>
+#include <linux/socket.h>
#define RDS_IB_ABI_VERSION 0x301
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 39/79] include/uapi/linux/if_pppox.h: include linux/if.h
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (38 preceding siblings ...)
2015-10-15 5:56 ` [PATCH v4 38/79] include/uapi/linux/rds.h: include linux/socket.h and linux/types.h Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 40/79] include/uapi/linux/if_tunnel.h: include linux/if.h, linux/ip.h and linux/in6.h Mikko Rapeli
` (40 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, netdev, linux-api
Fixes userspace compilation error:
error: ‘IFNAMSIZ’ undeclared here (not in a function)
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/if_pppox.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/uapi/linux/if_pppox.h b/include/uapi/linux/if_pppox.h
index e128769..473c3c4 100644
--- a/include/uapi/linux/if_pppox.h
+++ b/include/uapi/linux/if_pppox.h
@@ -21,6 +21,7 @@
#include <asm/byteorder.h>
#include <linux/socket.h>
+#include <linux/if.h>
#include <linux/if_ether.h>
#include <linux/if_pppol2tp.h>
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 40/79] include/uapi/linux/if_tunnel.h: include linux/if.h, linux/ip.h and linux/in6.h
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (39 preceding siblings ...)
2015-10-15 5:56 ` [PATCH v4 39/79] include/uapi/linux/if_pppox.h: include linux/if.h Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 41/79] include/uapi/linux/ipv6_route.h: include linux/in6.h Mikko Rapeli
` (39 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel
Cc: mikko.rapeli, David S. Miller, Tom Herbert, Pravin B Shelar,
Thomas Graf, netdev, linux-api
Fixes userspace compilation errors like:
error: field ‘iph’ has incomplete type
error: field ‘prefix’ has incomplete type
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/if_tunnel.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/include/uapi/linux/if_tunnel.h b/include/uapi/linux/if_tunnel.h
index af4de90..8afe695 100644
--- a/include/uapi/linux/if_tunnel.h
+++ b/include/uapi/linux/if_tunnel.h
@@ -2,6 +2,9 @@
#define _UAPI_IF_TUNNEL_H_
#include <linux/types.h>
+#include <linux/if.h>
+#include <linux/ip.h>
+#include <linux/in6.h>
#include <asm/byteorder.h>
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 41/79] include/uapi/linux/ipv6_route.h: include linux/in6.h
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (40 preceding siblings ...)
2015-10-15 5:56 ` [PATCH v4 40/79] include/uapi/linux/if_tunnel.h: include linux/if.h, linux/ip.h and linux/in6.h Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 42/79] " Mikko Rapeli
` (38 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, linux-api
Fixes userspace compile errors like:
error: field ‘mf6cc_origin’ has incomplete type
struct sockaddr_in6 mf6cc_origin; /* Origin of mcast */
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/mroute6.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/uapi/linux/mroute6.h b/include/uapi/linux/mroute6.h
index ce91215..5e17444 100644
--- a/include/uapi/linux/mroute6.h
+++ b/include/uapi/linux/mroute6.h
@@ -3,6 +3,7 @@
#include <linux/types.h>
#include <linux/sockios.h>
+#include <linux/in6.h>
/*
* Based on the MROUTING 3.5 defines primarily to keep
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 42/79] include/uapi/linux/ipv6_route.h: include linux/in6.h
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (41 preceding siblings ...)
2015-10-15 5:56 ` [PATCH v4 41/79] include/uapi/linux/ipv6_route.h: include linux/in6.h Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 43/79] include/uapi/linux/if_pppol2tp.h: include linux/in.h and linux/in6.h Mikko Rapeli
` (37 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, David S. Miller, Martin KaFai Lau, linux-api
Fixes userspace compile errors like:
error: field ‘rtmsg_dst’ has incomplete type
struct in6_addr rtmsg_dst;
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/ipv6_route.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/uapi/linux/ipv6_route.h b/include/uapi/linux/ipv6_route.h
index f6598d1..25ab362 100644
--- a/include/uapi/linux/ipv6_route.h
+++ b/include/uapi/linux/ipv6_route.h
@@ -14,6 +14,7 @@
#define _UAPI_LINUX_IPV6_ROUTE_H
#include <linux/types.h>
+#include <linux/in6.h>
#define RTF_DEFAULT 0x00010000 /* default - learned via ND */
#define RTF_ALLONLINK 0x00020000 /* (deprecated and will be removed)
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 43/79] include/uapi/linux/if_pppol2tp.h: include linux/in.h and linux/in6.h
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (42 preceding siblings ...)
2015-10-15 5:56 ` [PATCH v4 42/79] " Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 44/79] include/uapi/linux/if_pppox.h: " Mikko Rapeli
` (36 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, James Chapman, netdev, linux-api
Fixes userspace compilation errors like:
error: field ‘addr’ has incomplete type
struct sockaddr_in addr; /* IP address and port to send to */
^
error: field ‘addr’ has incomplete type
struct sockaddr_in6 addr; /* IP address and port to send to */
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/if_pppol2tp.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/include/uapi/linux/if_pppol2tp.h b/include/uapi/linux/if_pppol2tp.h
index 163e8ad..4bd1f55 100644
--- a/include/uapi/linux/if_pppol2tp.h
+++ b/include/uapi/linux/if_pppol2tp.h
@@ -16,7 +16,8 @@
#define _UAPI__LINUX_IF_PPPOL2TP_H
#include <linux/types.h>
-
+#include <linux/in.h>
+#include <linux/in6.h>
/* Structure used to connect() the socket to a particular tunnel UDP
* socket over IPv4.
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 44/79] include/uapi/linux/if_pppox.h: include linux/in.h and linux/in6.h
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (43 preceding siblings ...)
2015-10-15 5:56 ` [PATCH v4 43/79] include/uapi/linux/if_pppol2tp.h: include linux/in.h and linux/in6.h Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 45/79] linux/if.h linux/hdlc/ioctl.h: move IFNAMSIZ definition to hdlc/ioctl.h Mikko Rapeli
` (35 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, netdev, linux-api
Fixes userspace compilation errors:
error: field ‘addr’ has incomplete type
struct sockaddr_in addr; /* IP address and port to send to */
error: field ‘addr’ has incomplete type
struct sockaddr_in6 addr; /* IP address and port to send to */
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/if_pppox.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/uapi/linux/if_pppox.h b/include/uapi/linux/if_pppox.h
index 473c3c4..d37bbb1 100644
--- a/include/uapi/linux/if_pppox.h
+++ b/include/uapi/linux/if_pppox.h
@@ -24,6 +24,8 @@
#include <linux/if.h>
#include <linux/if_ether.h>
#include <linux/if_pppol2tp.h>
+#include <linux/in.h>
+#include <linux/in6.h>
/* For user-space programs to pick up these definitions
* which they wouldn't get otherwise without defining __KERNEL__
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 45/79] linux/if.h linux/hdlc/ioctl.h: move IFNAMSIZ definition to hdlc/ioctl.h
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (44 preceding siblings ...)
2015-10-15 5:56 ` [PATCH v4 44/79] include/uapi/linux/if_pppox.h: " Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 8:49 ` Frans Klaver
2015-10-15 5:56 ` [PATCH v4 46/79] include/uapi/linux/packet_diag.h: include linux/netdevice.h Mikko Rapeli
` (34 subsequent siblings)
80 siblings, 1 reply; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, linux-api
And include linux/hdlc/ioctl.h from linux/if.h.
Fixes userspace compiler error:
error: ‘IFNAMSIZ’ undeclared here (not in a function)
Suggested by Frans Klaver <fransklaver@gmail.com> on lkml message
<20150530195223.GA15645@bugger.home>.
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/hdlc/ioctl.h | 1 +
include/uapi/linux/if.h | 6 ++----
2 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/include/uapi/linux/hdlc/ioctl.h b/include/uapi/linux/hdlc/ioctl.h
index 04bc027..d1b1de5 100644
--- a/include/uapi/linux/hdlc/ioctl.h
+++ b/include/uapi/linux/hdlc/ioctl.h
@@ -1,6 +1,7 @@
#ifndef __HDLC_IOCTL_H__
#define __HDLC_IOCTL_H__
+#define IFNAMSIZ 16
#define GENERIC_HDLC_VERSION 4 /* For synchronization with sethdlc utility */
diff --git a/include/uapi/linux/if.h b/include/uapi/linux/if.h
index 9cf2394..0f98f0a 100644
--- a/include/uapi/linux/if.h
+++ b/include/uapi/linux/if.h
@@ -22,10 +22,8 @@
#include <linux/types.h> /* for "__kernel_caddr_t" et al */
#include <linux/socket.h> /* for "struct sockaddr" et al */
#include <linux/compiler.h> /* for "__user" et al */
-
-#define IFNAMSIZ 16
-#define IFALIASZ 256
-#include <linux/hdlc/ioctl.h>
+#include <linux/hdlc/ioctl.h> /* for IFNAMSIZ */
+#define IFALIASZ 256
/**
* enum net_device_flags - &struct net_device flags
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 46/79] include/uapi/linux/packet_diag.h: include linux/netdevice.h
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (45 preceding siblings ...)
2015-10-15 5:56 ` [PATCH v4 45/79] linux/if.h linux/hdlc/ioctl.h: move IFNAMSIZ definition to hdlc/ioctl.h Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 47/79] include/uapi/linux/llc.h: include linux/if.h Mikko Rapeli
` (33 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, linux-api
Fixes userspace compilation error:
error: ‘MAX_ADDR_LEN’ undeclared here (not in a function)
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/packet_diag.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/uapi/linux/packet_diag.h b/include/uapi/linux/packet_diag.h
index d08c63f..2a75e97 100644
--- a/include/uapi/linux/packet_diag.h
+++ b/include/uapi/linux/packet_diag.h
@@ -2,6 +2,7 @@
#define __PACKET_DIAG_H__
#include <linux/types.h>
+#include <linux/netdevice.h>
struct packet_diag_req {
__u8 sdiag_family;
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 47/79] include/uapi/linux/llc.h: include linux/if.h
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (46 preceding siblings ...)
2015-10-15 5:56 ` [PATCH v4 46/79] include/uapi/linux/packet_diag.h: include linux/netdevice.h Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` Mikko Rapeli
` (32 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, Arnaldo Carvalho de Melo, linux-api
Fixes userspace compile error:
error: ‘IFHWADDRLEN’ undeclared here (not in a function)
unsigned char sllc_mac[IFHWADDRLEN];
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/llc.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/uapi/linux/llc.h b/include/uapi/linux/llc.h
index 9c987a4..f503599 100644
--- a/include/uapi/linux/llc.h
+++ b/include/uapi/linux/llc.h
@@ -14,6 +14,7 @@
#define _UAPI__LINUX_LLC_H
#include <linux/socket.h>
+#include <linux/if.h>
#define __LLC_SOCK_SIZE__ 16 /* sizeof(sockaddr_llc), word align. */
struct sockaddr_llc {
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 48/79] include/uapi/linux/mqueue.h: include linux/types.h
@ 2015-10-15 5:56 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, linux-api
Fixes userspace compile error:
error: unknown type name ‘__kernel_long_t’
__kernel_long_t mq_flags; /* message queue flags */
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/mqueue.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/uapi/linux/mqueue.h b/include/uapi/linux/mqueue.h
index d0a2b8e..bbd5116 100644
--- a/include/uapi/linux/mqueue.h
+++ b/include/uapi/linux/mqueue.h
@@ -18,6 +18,8 @@
#ifndef _LINUX_MQUEUE_H
#define _LINUX_MQUEUE_H
+#include <linux/types.h>
+
#define MQ_PRIO_MAX 32768
/* per-uid limit of kernel memory used by mqueue, in bytes */
#define MQ_BYTES_MAX 819200
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 48/79] include/uapi/linux/mqueue.h: include linux/types.h
@ 2015-10-15 5:56 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel-u79uwXL29TY76Z2rM5mHXA
Cc: mikko.rapeli-X3B1VOXEql0, linux-api-u79uwXL29TY76Z2rM5mHXA
Fixes userspace compile error:
error: unknown type name ‘__kernel_long_t’
__kernel_long_t mq_flags; /* message queue flags */
Signed-off-by: Mikko Rapeli <mikko.rapeli-X3B1VOXEql0@public.gmane.org>
---
include/uapi/linux/mqueue.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/uapi/linux/mqueue.h b/include/uapi/linux/mqueue.h
index d0a2b8e..bbd5116 100644
--- a/include/uapi/linux/mqueue.h
+++ b/include/uapi/linux/mqueue.h
@@ -18,6 +18,8 @@
#ifndef _LINUX_MQUEUE_H
#define _LINUX_MQUEUE_H
+#include <linux/types.h>
+
#define MQ_PRIO_MAX 32768
/* per-uid limit of kernel memory used by mqueue, in bytes */
#define MQ_BYTES_MAX 819200
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 49/79] include/uapi/linux/mroute.h: include linux/in.h
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (48 preceding siblings ...)
2015-10-15 5:56 ` Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` Mikko Rapeli
` (30 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, linux-api
Fixes userspace compile errors like:
error: field ‘vifc_lcl_addr’ has incomplete type
struct in_addr vifc_lcl_addr; /* Local interface address */
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/mroute.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/uapi/linux/mroute.h b/include/uapi/linux/mroute.h
index a382d2c..b1f9428 100644
--- a/include/uapi/linux/mroute.h
+++ b/include/uapi/linux/mroute.h
@@ -3,6 +3,7 @@
#include <linux/sockios.h>
#include <linux/types.h>
+#include <linux/in.h>
/*
* Based on the MROUTING 3.5 defines primarily to keep
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 50/79] include/uapi/linux/dlm_netlink.h: include linux/dlmconstants.h
@ 2015-10-15 5:56 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, linux-api
Fixes userspace compilation error:
error: ‘DLM_RESNAME_MAXLEN’ undeclared here (not in a function)
char resource_name[DLM_RESNAME_MAXLEN];
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/dlm_netlink.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/uapi/linux/dlm_netlink.h b/include/uapi/linux/dlm_netlink.h
index 647c8ef..ef1e2e0 100644
--- a/include/uapi/linux/dlm_netlink.h
+++ b/include/uapi/linux/dlm_netlink.h
@@ -10,6 +10,7 @@
#define _DLM_NETLINK_H
#include <linux/types.h>
+#include <linux/dlmconstants.h>
enum {
DLM_STATUS_WAITING = 1,
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 50/79] include/uapi/linux/dlm_netlink.h: include linux/dlmconstants.h
@ 2015-10-15 5:56 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel-u79uwXL29TY76Z2rM5mHXA
Cc: mikko.rapeli-X3B1VOXEql0, linux-api-u79uwXL29TY76Z2rM5mHXA
Fixes userspace compilation error:
error: ‘DLM_RESNAME_MAXLEN’ undeclared here (not in a function)
char resource_name[DLM_RESNAME_MAXLEN];
Signed-off-by: Mikko Rapeli <mikko.rapeli-X3B1VOXEql0@public.gmane.org>
---
include/uapi/linux/dlm_netlink.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/uapi/linux/dlm_netlink.h b/include/uapi/linux/dlm_netlink.h
index 647c8ef..ef1e2e0 100644
--- a/include/uapi/linux/dlm_netlink.h
+++ b/include/uapi/linux/dlm_netlink.h
@@ -10,6 +10,7 @@
#define _DLM_NETLINK_H
#include <linux/types.h>
+#include <linux/dlmconstants.h>
enum {
DLM_STATUS_WAITING = 1,
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 51/79] include/uapi/linux/ip6_tunnel.h: include linux/if.h and linux/in6.h
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (50 preceding siblings ...)
2015-10-15 5:56 ` Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 52/79] include/uapi/netfilter/*.h: fix include files for compilation Mikko Rapeli
` (28 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, linux-api
Fixes userspace compile errors like:
error: ‘IFNAMSIZ’ undeclared here (not in a function)
error: field ‘laddr’ has incomplete type
struct in6_addr laddr; /* local tunnel end-point address */
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/ip6_tunnel.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/uapi/linux/ip6_tunnel.h b/include/uapi/linux/ip6_tunnel.h
index 48af63c..21cfd62 100644
--- a/include/uapi/linux/ip6_tunnel.h
+++ b/include/uapi/linux/ip6_tunnel.h
@@ -2,6 +2,8 @@
#define _IP6_TUNNEL_H
#include <linux/types.h>
+#include <linux/if.h>
+#include <linux/in6.h>
#define IPV6_TLV_TNL_ENCAP_LIMIT 4
#define IPV6_DEFAULT_TNL_ENCAP_LIMIT 4
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 52/79] include/uapi/netfilter/*.h: fix include files for compilation
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (51 preceding siblings ...)
2015-10-15 5:56 ` [PATCH v4 51/79] include/uapi/linux/ip6_tunnel.h: include linux/if.h and linux/in6.h Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-11-23 16:55 ` Pablo Neira Ayuso
2015-10-15 5:56 ` [PATCH v4 53/79] include/uapi/linux/errqueue.h: include linux/time.h Mikko Rapeli
` (27 subsequent siblings)
80 siblings, 1 reply; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel
Cc: mikko.rapeli, Pablo Neira Ayuso, Patrick McHardy,
Jozsef Kadlecsik, netfilter-devel, coreteam, linux-api
Add missing header dependencies and other small changes so that each file
compiles alone in userspace.
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/netfilter/ipset/ip_set_bitmap.h | 2 ++
include/uapi/linux/netfilter/ipset/ip_set_hash.h | 2 ++
include/uapi/linux/netfilter/ipset/ip_set_list.h | 2 ++
include/uapi/linux/netfilter/nf_conntrack_tuple_common.h | 3 +++
include/uapi/linux/netfilter/xt_HMARK.h | 1 +
include/uapi/linux/netfilter/xt_RATEEST.h | 1 +
include/uapi/linux/netfilter/xt_TEE.h | 2 ++
include/uapi/linux/netfilter/xt_TPROXY.h | 1 +
include/uapi/linux/netfilter/xt_hashlimit.h | 1 +
include/uapi/linux/netfilter/xt_ipvs.h | 1 +
include/uapi/linux/netfilter/xt_mac.h | 2 ++
include/uapi/linux/netfilter/xt_osf.h | 2 ++
include/uapi/linux/netfilter/xt_physdev.h | 2 +-
include/uapi/linux/netfilter/xt_policy.h | 2 ++
include/uapi/linux/netfilter/xt_rateest.h | 1 +
include/uapi/linux/netfilter/xt_recent.h | 1 +
include/uapi/linux/netfilter/xt_sctp.h | 12 ++++++------
include/uapi/linux/netfilter_arp/arp_tables.h | 1 +
include/uapi/linux/netfilter_bridge.h | 1 +
include/uapi/linux/netfilter_bridge/ebt_arp.h | 1 +
include/uapi/linux/netfilter_bridge/ebt_arpreply.h | 2 ++
include/uapi/linux/netfilter_bridge/ebt_ip6.h | 1 +
include/uapi/linux/netfilter_bridge/ebt_nat.h | 2 ++
include/uapi/linux/netfilter_ipv4/ip_tables.h | 1 +
include/uapi/linux/netfilter_ipv6/ip6_tables.h | 1 +
include/uapi/linux/netfilter_ipv6/ip6t_rt.h | 2 +-
26 files changed, 42 insertions(+), 8 deletions(-)
diff --git a/include/uapi/linux/netfilter/ipset/ip_set_bitmap.h b/include/uapi/linux/netfilter/ipset/ip_set_bitmap.h
index 6a2c038..fd5024d 100644
--- a/include/uapi/linux/netfilter/ipset/ip_set_bitmap.h
+++ b/include/uapi/linux/netfilter/ipset/ip_set_bitmap.h
@@ -1,6 +1,8 @@
#ifndef _UAPI__IP_SET_BITMAP_H
#define _UAPI__IP_SET_BITMAP_H
+#include <linux/netfilter/ipset/ip_set.h>
+
/* Bitmap type specific error codes */
enum {
/* The element is out of the range of the set */
diff --git a/include/uapi/linux/netfilter/ipset/ip_set_hash.h b/include/uapi/linux/netfilter/ipset/ip_set_hash.h
index 352eecc..82deeb8 100644
--- a/include/uapi/linux/netfilter/ipset/ip_set_hash.h
+++ b/include/uapi/linux/netfilter/ipset/ip_set_hash.h
@@ -1,6 +1,8 @@
#ifndef _UAPI__IP_SET_HASH_H
#define _UAPI__IP_SET_HASH_H
+#include <linux/netfilter/ipset/ip_set.h>
+
/* Hash type specific error codes */
enum {
/* Hash is full */
diff --git a/include/uapi/linux/netfilter/ipset/ip_set_list.h b/include/uapi/linux/netfilter/ipset/ip_set_list.h
index a44efaa..84d4303 100644
--- a/include/uapi/linux/netfilter/ipset/ip_set_list.h
+++ b/include/uapi/linux/netfilter/ipset/ip_set_list.h
@@ -1,6 +1,8 @@
#ifndef _UAPI__IP_SET_LIST_H
#define _UAPI__IP_SET_LIST_H
+#include <linux/netfilter/ipset/ip_set.h>
+
/* List type specific error codes */
enum {
/* Set name to be added/deleted/tested does not exist. */
diff --git a/include/uapi/linux/netfilter/nf_conntrack_tuple_common.h b/include/uapi/linux/netfilter/nf_conntrack_tuple_common.h
index 2f6bbc5..a9c3834 100644
--- a/include/uapi/linux/netfilter/nf_conntrack_tuple_common.h
+++ b/include/uapi/linux/netfilter/nf_conntrack_tuple_common.h
@@ -1,6 +1,9 @@
#ifndef _NF_CONNTRACK_TUPLE_COMMON_H
#define _NF_CONNTRACK_TUPLE_COMMON_H
+#include <linux/types.h>
+#include <linux/netfilter.h>
+
enum ip_conntrack_dir {
IP_CT_DIR_ORIGINAL,
IP_CT_DIR_REPLY,
diff --git a/include/uapi/linux/netfilter/xt_HMARK.h b/include/uapi/linux/netfilter/xt_HMARK.h
index 826fc58..3fb48c8 100644
--- a/include/uapi/linux/netfilter/xt_HMARK.h
+++ b/include/uapi/linux/netfilter/xt_HMARK.h
@@ -2,6 +2,7 @@
#define XT_HMARK_H_
#include <linux/types.h>
+#include <linux/netfilter.h>
enum {
XT_HMARK_SADDR_MASK,
diff --git a/include/uapi/linux/netfilter/xt_RATEEST.h b/include/uapi/linux/netfilter/xt_RATEEST.h
index 6605e20..ec1b570 100644
--- a/include/uapi/linux/netfilter/xt_RATEEST.h
+++ b/include/uapi/linux/netfilter/xt_RATEEST.h
@@ -2,6 +2,7 @@
#define _XT_RATEEST_TARGET_H
#include <linux/types.h>
+#include <linux/if.h>
struct xt_rateest_target_info {
char name[IFNAMSIZ];
diff --git a/include/uapi/linux/netfilter/xt_TEE.h b/include/uapi/linux/netfilter/xt_TEE.h
index 5c21d5c..0109202 100644
--- a/include/uapi/linux/netfilter/xt_TEE.h
+++ b/include/uapi/linux/netfilter/xt_TEE.h
@@ -1,6 +1,8 @@
#ifndef _XT_TEE_TARGET_H
#define _XT_TEE_TARGET_H
+#include <linux/netfilter.h>
+
struct xt_tee_tginfo {
union nf_inet_addr gw;
char oif[16];
diff --git a/include/uapi/linux/netfilter/xt_TPROXY.h b/include/uapi/linux/netfilter/xt_TPROXY.h
index 902043c..8d693ee 100644
--- a/include/uapi/linux/netfilter/xt_TPROXY.h
+++ b/include/uapi/linux/netfilter/xt_TPROXY.h
@@ -2,6 +2,7 @@
#define _XT_TPROXY_H
#include <linux/types.h>
+#include <linux/netfilter.h>
/* TPROXY target is capable of marking the packet to perform
* redirection. We can get rid of that whenever we get support for
diff --git a/include/uapi/linux/netfilter/xt_hashlimit.h b/include/uapi/linux/netfilter/xt_hashlimit.h
index cbfc43d..6db90372 100644
--- a/include/uapi/linux/netfilter/xt_hashlimit.h
+++ b/include/uapi/linux/netfilter/xt_hashlimit.h
@@ -2,6 +2,7 @@
#define _UAPI_XT_HASHLIMIT_H
#include <linux/types.h>
+#include <linux/if.h>
/* timings are in milliseconds. */
#define XT_HASHLIMIT_SCALE 10000
diff --git a/include/uapi/linux/netfilter/xt_ipvs.h b/include/uapi/linux/netfilter/xt_ipvs.h
index eff34ac..e03b9c3 100644
--- a/include/uapi/linux/netfilter/xt_ipvs.h
+++ b/include/uapi/linux/netfilter/xt_ipvs.h
@@ -2,6 +2,7 @@
#define _XT_IPVS_H
#include <linux/types.h>
+#include <linux/netfilter.h>
enum {
XT_IPVS_IPVS_PROPERTY = 1 << 0, /* all other options imply this one */
diff --git a/include/uapi/linux/netfilter/xt_mac.h b/include/uapi/linux/netfilter/xt_mac.h
index b892cdc..9a19a08 100644
--- a/include/uapi/linux/netfilter/xt_mac.h
+++ b/include/uapi/linux/netfilter/xt_mac.h
@@ -1,6 +1,8 @@
#ifndef _XT_MAC_H
#define _XT_MAC_H
+#include <linux/if_ether.h>
+
struct xt_mac_info {
unsigned char srcaddr[ETH_ALEN];
int invert;
diff --git a/include/uapi/linux/netfilter/xt_osf.h b/include/uapi/linux/netfilter/xt_osf.h
index 5d66cae..e615995 100644
--- a/include/uapi/linux/netfilter/xt_osf.h
+++ b/include/uapi/linux/netfilter/xt_osf.h
@@ -20,6 +20,8 @@
#define _XT_OSF_H
#include <linux/types.h>
+#include <linux/ip.h>
+#include <linux/tcp.h>
#define MAXGENRELEN 32
diff --git a/include/uapi/linux/netfilter/xt_physdev.h b/include/uapi/linux/netfilter/xt_physdev.h
index db7a298..ccdde87 100644
--- a/include/uapi/linux/netfilter/xt_physdev.h
+++ b/include/uapi/linux/netfilter/xt_physdev.h
@@ -2,7 +2,7 @@
#define _UAPI_XT_PHYSDEV_H
#include <linux/types.h>
-
+#include <linux/if.h>
#define XT_PHYSDEV_OP_IN 0x01
#define XT_PHYSDEV_OP_OUT 0x02
diff --git a/include/uapi/linux/netfilter/xt_policy.h b/include/uapi/linux/netfilter/xt_policy.h
index be8ead0..d8a9800 100644
--- a/include/uapi/linux/netfilter/xt_policy.h
+++ b/include/uapi/linux/netfilter/xt_policy.h
@@ -2,6 +2,8 @@
#define _XT_POLICY_H
#include <linux/types.h>
+#include <linux/in.h>
+#include <linux/in6.h>
#define XT_POLICY_MAX_ELEM 4
diff --git a/include/uapi/linux/netfilter/xt_rateest.h b/include/uapi/linux/netfilter/xt_rateest.h
index d40a619..13fe50d 100644
--- a/include/uapi/linux/netfilter/xt_rateest.h
+++ b/include/uapi/linux/netfilter/xt_rateest.h
@@ -2,6 +2,7 @@
#define _XT_RATEEST_MATCH_H
#include <linux/types.h>
+#include <linux/if.h>
enum xt_rateest_match_flags {
XT_RATEEST_MATCH_INVERT = 1<<0,
diff --git a/include/uapi/linux/netfilter/xt_recent.h b/include/uapi/linux/netfilter/xt_recent.h
index 6ef36c1..955d562 100644
--- a/include/uapi/linux/netfilter/xt_recent.h
+++ b/include/uapi/linux/netfilter/xt_recent.h
@@ -2,6 +2,7 @@
#define _LINUX_NETFILTER_XT_RECENT_H 1
#include <linux/types.h>
+#include <linux/netfilter.h>
enum {
XT_RECENT_CHECK = 1 << 0,
diff --git a/include/uapi/linux/netfilter/xt_sctp.h b/include/uapi/linux/netfilter/xt_sctp.h
index 29287be..58ffcfb 100644
--- a/include/uapi/linux/netfilter/xt_sctp.h
+++ b/include/uapi/linux/netfilter/xt_sctp.h
@@ -66,26 +66,26 @@ struct xt_sctp_info {
#define SCTP_CHUNKMAP_IS_CLEAR(chunkmap) \
__sctp_chunkmap_is_clear((chunkmap), ARRAY_SIZE(chunkmap))
-static inline bool
+static inline _Bool
__sctp_chunkmap_is_clear(const __u32 *chunkmap, unsigned int n)
{
unsigned int i;
for (i = 0; i < n; ++i)
if (chunkmap[i])
- return false;
- return true;
+ return 0;
+ return 1;
}
#define SCTP_CHUNKMAP_IS_ALL_SET(chunkmap) \
__sctp_chunkmap_is_all_set((chunkmap), ARRAY_SIZE(chunkmap))
-static inline bool
+static inline _Bool
__sctp_chunkmap_is_all_set(const __u32 *chunkmap, unsigned int n)
{
unsigned int i;
for (i = 0; i < n; ++i)
if (chunkmap[i] != ~0U)
- return false;
- return true;
+ return 0;
+ return 1;
}
#endif /* _XT_SCTP_H_ */
diff --git a/include/uapi/linux/netfilter_arp/arp_tables.h b/include/uapi/linux/netfilter_arp/arp_tables.h
index a5a86a4..ece3ad4 100644
--- a/include/uapi/linux/netfilter_arp/arp_tables.h
+++ b/include/uapi/linux/netfilter_arp/arp_tables.h
@@ -11,6 +11,7 @@
#include <linux/types.h>
#include <linux/compiler.h>
+#include <linux/if.h>
#include <linux/netfilter_arp.h>
#include <linux/netfilter/x_tables.h>
diff --git a/include/uapi/linux/netfilter_bridge.h b/include/uapi/linux/netfilter_bridge.h
index a5eda6d..514519b 100644
--- a/include/uapi/linux/netfilter_bridge.h
+++ b/include/uapi/linux/netfilter_bridge.h
@@ -4,6 +4,7 @@
/* bridge-specific defines for netfilter.
*/
+#include <linux/in.h>
#include <linux/netfilter.h>
#include <linux/if_ether.h>
#include <linux/if_vlan.h>
diff --git a/include/uapi/linux/netfilter_bridge/ebt_arp.h b/include/uapi/linux/netfilter_bridge/ebt_arp.h
index 522f3e4..dd4df25 100644
--- a/include/uapi/linux/netfilter_bridge/ebt_arp.h
+++ b/include/uapi/linux/netfilter_bridge/ebt_arp.h
@@ -2,6 +2,7 @@
#define __LINUX_BRIDGE_EBT_ARP_H
#include <linux/types.h>
+#include <linux/if_ether.h>
#define EBT_ARP_OPCODE 0x01
#define EBT_ARP_HTYPE 0x02
diff --git a/include/uapi/linux/netfilter_bridge/ebt_arpreply.h b/include/uapi/linux/netfilter_bridge/ebt_arpreply.h
index 7e77896..6fee340 100644
--- a/include/uapi/linux/netfilter_bridge/ebt_arpreply.h
+++ b/include/uapi/linux/netfilter_bridge/ebt_arpreply.h
@@ -1,6 +1,8 @@
#ifndef __LINUX_BRIDGE_EBT_ARPREPLY_H
#define __LINUX_BRIDGE_EBT_ARPREPLY_H
+#include <linux/if_ether.h>
+
struct ebt_arpreply_info {
unsigned char mac[ETH_ALEN];
int target;
diff --git a/include/uapi/linux/netfilter_bridge/ebt_ip6.h b/include/uapi/linux/netfilter_bridge/ebt_ip6.h
index 42b8896..a062f0c 100644
--- a/include/uapi/linux/netfilter_bridge/ebt_ip6.h
+++ b/include/uapi/linux/netfilter_bridge/ebt_ip6.h
@@ -13,6 +13,7 @@
#define __LINUX_BRIDGE_EBT_IP6_H
#include <linux/types.h>
+#include <linux/in6.h>
#define EBT_IP6_SOURCE 0x01
#define EBT_IP6_DEST 0x02
diff --git a/include/uapi/linux/netfilter_bridge/ebt_nat.h b/include/uapi/linux/netfilter_bridge/ebt_nat.h
index 5e74e3b..c990d74 100644
--- a/include/uapi/linux/netfilter_bridge/ebt_nat.h
+++ b/include/uapi/linux/netfilter_bridge/ebt_nat.h
@@ -1,6 +1,8 @@
#ifndef __LINUX_BRIDGE_EBT_NAT_H
#define __LINUX_BRIDGE_EBT_NAT_H
+#include <linux/if_ether.h>
+
#define NAT_ARP_BIT (0x00000010)
struct ebt_nat_info {
unsigned char mac[ETH_ALEN];
diff --git a/include/uapi/linux/netfilter_ipv4/ip_tables.h b/include/uapi/linux/netfilter_ipv4/ip_tables.h
index f1e6ef2..d0da53d 100644
--- a/include/uapi/linux/netfilter_ipv4/ip_tables.h
+++ b/include/uapi/linux/netfilter_ipv4/ip_tables.h
@@ -17,6 +17,7 @@
#include <linux/types.h>
#include <linux/compiler.h>
+#include <linux/if.h>
#include <linux/netfilter_ipv4.h>
#include <linux/netfilter/x_tables.h>
diff --git a/include/uapi/linux/netfilter_ipv6/ip6_tables.h b/include/uapi/linux/netfilter_ipv6/ip6_tables.h
index 649c680..d1b2265 100644
--- a/include/uapi/linux/netfilter_ipv6/ip6_tables.h
+++ b/include/uapi/linux/netfilter_ipv6/ip6_tables.h
@@ -17,6 +17,7 @@
#include <linux/types.h>
#include <linux/compiler.h>
+#include <linux/if.h>
#include <linux/netfilter_ipv6.h>
#include <linux/netfilter/x_tables.h>
diff --git a/include/uapi/linux/netfilter_ipv6/ip6t_rt.h b/include/uapi/linux/netfilter_ipv6/ip6t_rt.h
index 7605a5f..558f81e 100644
--- a/include/uapi/linux/netfilter_ipv6/ip6t_rt.h
+++ b/include/uapi/linux/netfilter_ipv6/ip6t_rt.h
@@ -2,7 +2,7 @@
#define _IP6T_RT_H
#include <linux/types.h>
-/*#include <linux/in6.h>*/
+#include <linux/in6.h>
#define IP6T_RT_HOPS 16
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 53/79] include/uapi/linux/errqueue.h: include linux/time.h
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (52 preceding siblings ...)
2015-10-15 5:56 ` [PATCH v4 52/79] include/uapi/netfilter/*.h: fix include files for compilation Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` Mikko Rapeli
` (26 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, linux-api
Fixes userspace compilation error:
error: array type has incomplete element type
struct timespec ts[3];
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/errqueue.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/uapi/linux/errqueue.h b/include/uapi/linux/errqueue.h
index 07bdce1..6b1cdc6 100644
--- a/include/uapi/linux/errqueue.h
+++ b/include/uapi/linux/errqueue.h
@@ -2,6 +2,7 @@
#define _UAPI_LINUX_ERRQUEUE_H
#include <linux/types.h>
+#include <linux/time.h>
struct sock_extended_err {
__u32 ee_errno;
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 54/79] include/uapi/asm-generic/ucontext.h: include asm/signal.h and asm/sigcontext.h
@ 2015-10-15 5:56 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, Arnd Bergmann, linux-arch, linux-api
Fixes userspace compiler errors:
error: unknown type name ‘stack_t’
error: field ‘uc_mcontext’ has incomplete type
struct sigcontext uc_mcontext;
error: unknown type name ‘sigset_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/asm-generic/ucontext.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/include/uapi/asm-generic/ucontext.h b/include/uapi/asm-generic/ucontext.h
index ad77343..4481528 100644
--- a/include/uapi/asm-generic/ucontext.h
+++ b/include/uapi/asm-generic/ucontext.h
@@ -1,6 +1,9 @@
#ifndef __ASM_GENERIC_UCONTEXT_H
#define __ASM_GENERIC_UCONTEXT_H
+#include <asm/signal.h>
+#include <asm/sigcontext.h>
+
struct ucontext {
unsigned long uc_flags;
struct ucontext *uc_link;
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 54/79] include/uapi/asm-generic/ucontext.h: include asm/signal.h and asm/sigcontext.h
@ 2015-10-15 5:56 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel-u79uwXL29TY76Z2rM5mHXA
Cc: mikko.rapeli-X3B1VOXEql0, Arnd Bergmann,
linux-arch-u79uwXL29TY76Z2rM5mHXA,
linux-api-u79uwXL29TY76Z2rM5mHXA
Fixes userspace compiler errors:
error: unknown type name ‘stack_t’
error: field ‘uc_mcontext’ has incomplete type
struct sigcontext uc_mcontext;
error: unknown type name ‘sigset_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli-X3B1VOXEql0@public.gmane.org>
---
include/uapi/asm-generic/ucontext.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/include/uapi/asm-generic/ucontext.h b/include/uapi/asm-generic/ucontext.h
index ad77343..4481528 100644
--- a/include/uapi/asm-generic/ucontext.h
+++ b/include/uapi/asm-generic/ucontext.h
@@ -1,6 +1,9 @@
#ifndef __ASM_GENERIC_UCONTEXT_H
#define __ASM_GENERIC_UCONTEXT_H
+#include <asm/signal.h>
+#include <asm/sigcontext.h>
+
struct ucontext {
unsigned long uc_flags;
struct ucontext *uc_link;
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 55/79] arch/x86/include/uapi/asm/signal.h: use __kernel_size_t instead of size_t
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (54 preceding siblings ...)
2015-10-15 5:56 ` Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` Mikko Rapeli
` (24 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel
Cc: mikko.rapeli, Thomas Gleixner, Ingo Molnar, H. Peter Anvin, x86
Fixes userspace compilation error:
error: unknown type name ‘size_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
arch/x86/include/uapi/asm/signal.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/x86/include/uapi/asm/signal.h b/arch/x86/include/uapi/asm/signal.h
index 8264f47..74346db 100644
--- a/arch/x86/include/uapi/asm/signal.h
+++ b/arch/x86/include/uapi/asm/signal.h
@@ -127,7 +127,7 @@ struct sigaction {
typedef struct sigaltstack {
void __user *ss_sp;
int ss_flags;
- size_t ss_size;
+ __kernel_size_t ss_size;
} stack_t;
#endif /* __ASSEMBLY__ */
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 56/79] include/uapi/linux/auto_fs.h: include linux/limits.h
@ 2015-10-15 5:56 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, linux-api
Fixes userspace compilation error:
error: ‘NAME_MAX’ undeclared here (not in a function)
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/auto_fs.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/uapi/linux/auto_fs.h b/include/uapi/linux/auto_fs.h
index bb991df..edffdd5 100644
--- a/include/uapi/linux/auto_fs.h
+++ b/include/uapi/linux/auto_fs.h
@@ -15,6 +15,7 @@
#define _UAPI_LINUX_AUTO_FS_H
#include <linux/types.h>
+#include <linux/limits.h>
#ifndef __KERNEL__
#include <sys/ioctl.h>
#endif /* __KERNEL__ */
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 56/79] include/uapi/linux/auto_fs.h: include linux/limits.h
@ 2015-10-15 5:56 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel-u79uwXL29TY76Z2rM5mHXA
Cc: mikko.rapeli-X3B1VOXEql0, linux-api-u79uwXL29TY76Z2rM5mHXA
Fixes userspace compilation error:
error: ‘NAME_MAX’ undeclared here (not in a function)
Signed-off-by: Mikko Rapeli <mikko.rapeli-X3B1VOXEql0@public.gmane.org>
---
include/uapi/linux/auto_fs.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/uapi/linux/auto_fs.h b/include/uapi/linux/auto_fs.h
index bb991df..edffdd5 100644
--- a/include/uapi/linux/auto_fs.h
+++ b/include/uapi/linux/auto_fs.h
@@ -15,6 +15,7 @@
#define _UAPI_LINUX_AUTO_FS_H
#include <linux/types.h>
+#include <linux/limits.h>
#ifndef __KERNEL__
#include <sys/ioctl.h>
#endif /* __KERNEL__ */
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 57/79] include/uapi/linux/openvswitch.h: use __u32 from linux/types.h
@ 2015-10-15 5:56 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, Pravin Shelar, netdev, dev, linux-api
Fixes userspace compiler error:
error: unknown type name ‘uint32_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/openvswitch.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/uapi/linux/openvswitch.h b/include/uapi/linux/openvswitch.h
index 32e07d8..80c39a1 100644
--- a/include/uapi/linux/openvswitch.h
+++ b/include/uapi/linux/openvswitch.h
@@ -612,8 +612,8 @@ enum ovs_hash_alg {
* @hash_basis: basis used for computing hash.
*/
struct ovs_action_hash {
- uint32_t hash_alg; /* One of ovs_hash_alg. */
- uint32_t hash_basis;
+ __u32 hash_alg; /* One of ovs_hash_alg. */
+ __u32 hash_basis;
};
/**
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 57/79] include/uapi/linux/openvswitch.h: use __u32 from linux/types.h
@ 2015-10-15 5:56 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel-u79uwXL29TY76Z2rM5mHXA
Cc: dev-yBygre7rU0TnMu66kgdUjQ, mikko.rapeli-X3B1VOXEql0,
linux-api-u79uwXL29TY76Z2rM5mHXA, netdev-u79uwXL29TY76Z2rM5mHXA
Fixes userspace compiler error:
error: unknown type name ‘uint32_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/openvswitch.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/uapi/linux/openvswitch.h b/include/uapi/linux/openvswitch.h
index 32e07d8..80c39a1 100644
--- a/include/uapi/linux/openvswitch.h
+++ b/include/uapi/linux/openvswitch.h
@@ -612,8 +612,8 @@ enum ovs_hash_alg {
* @hash_basis: basis used for computing hash.
*/
struct ovs_action_hash {
- uint32_t hash_alg; /* One of ovs_hash_alg. */
- uint32_t hash_basis;
+ __u32 hash_alg; /* One of ovs_hash_alg. */
+ __u32 hash_basis;
};
/**
--
2.5.0
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 58/79] include/uapi/linux/target_core_user.h: use __u8, __u16, __u32 and __u64 from linux/types.h
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (57 preceding siblings ...)
2015-10-15 5:56 ` Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` Mikko Rapeli
` (21 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel
Cc: mikko.rapeli, Nicholas Bellinger, Andy Grover, Kyle McMartin,
Ilias Tsitsimpis, David Disseldorp, linux-api
Fixes userspace compilation errors like:
error: unknown type name ‘uint16_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/target_core_user.h | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/include/uapi/linux/target_core_user.h b/include/uapi/linux/target_core_user.h
index 95c6521..440b52a 100644
--- a/include/uapi/linux/target_core_user.h
+++ b/include/uapi/linux/target_core_user.h
@@ -104,26 +104,26 @@ struct tcmu_cmd_entry {
union {
struct {
- uint32_t iov_cnt;
- uint32_t iov_bidi_cnt;
- uint32_t iov_dif_cnt;
- uint64_t cdb_off;
- uint64_t __pad1;
- uint64_t __pad2;
+ __u32 iov_cnt;
+ __u32 iov_bidi_cnt;
+ __u32 iov_dif_cnt;
+ __u64 cdb_off;
+ __u64 __pad1;
+ __u64 __pad2;
struct iovec iov[0];
} req;
struct {
- uint8_t scsi_status;
- uint8_t __pad1;
- uint16_t __pad2;
- uint32_t __pad3;
+ __u8 scsi_status;
+ __u8 __pad1;
+ __u16 __pad2;
+ __u32 __pad3;
char sense_buffer[TCMU_SENSE_BUFFERSIZE];
} rsp;
};
} __packed;
-#define TCMU_OP_ALIGN_SIZE sizeof(uint64_t)
+#define TCMU_OP_ALIGN_SIZE sizeof(__u64)
enum tcmu_genl_cmd {
TCMU_CMD_UNSPEC,
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 59/79] include/uapi/linux/omapfb.h: use __kernel_size_t instead of size_t
@ 2015-10-15 5:56 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, linux-api
Fixes userspace compilation error:
error: unknown type name ‘size_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/omapfb.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/uapi/linux/omapfb.h b/include/uapi/linux/omapfb.h
index 7c97bc0..b637a92 100644
--- a/include/uapi/linux/omapfb.h
+++ b/include/uapi/linux/omapfb.h
@@ -181,7 +181,7 @@ struct omapfb_memory_read {
__u16 y;
__u16 w;
__u16 h;
- size_t buffer_size;
+ __kernel_size_t buffer_size;
void __user *buffer;
};
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 59/79] include/uapi/linux/omapfb.h: use __kernel_size_t instead of size_t
@ 2015-10-15 5:56 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel-u79uwXL29TY76Z2rM5mHXA
Cc: mikko.rapeli-X3B1VOXEql0, linux-api-u79uwXL29TY76Z2rM5mHXA
Fixes userspace compilation error:
error: unknown type name ‘size_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli-X3B1VOXEql0@public.gmane.org>
---
include/uapi/linux/omapfb.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/uapi/linux/omapfb.h b/include/uapi/linux/omapfb.h
index 7c97bc0..b637a92 100644
--- a/include/uapi/linux/omapfb.h
+++ b/include/uapi/linux/omapfb.h
@@ -181,7 +181,7 @@ struct omapfb_memory_read {
__u16 y;
__u16 w;
__u16 h;
- size_t buffer_size;
+ __kernel_size_t buffer_size;
void __user *buffer;
};
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 60/79] include/uapi/linux/atm_zatm.h: include linux/time.h
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (59 preceding siblings ...)
2015-10-15 5:56 ` Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 61/79] include/uapi/linux/scc.h: include linux/sockios.h Mikko Rapeli
` (19 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel
Cc: mikko.rapeli, Chas Williams, linux-atm-general, netdev, linux-api
Fixes userspace compile error:
error: field ‘real’ has incomplete type
struct timeval real; /* real (wall-clock) time */
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/atm_zatm.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/uapi/linux/atm_zatm.h b/include/uapi/linux/atm_zatm.h
index 10f0fa2..adbaa6c 100644
--- a/include/uapi/linux/atm_zatm.h
+++ b/include/uapi/linux/atm_zatm.h
@@ -14,6 +14,7 @@
#include <linux/atmapi.h>
#include <linux/atmioc.h>
+#include <linux/time.h>
#define ZATM_GETPOOL _IOW('a',ATMIOC_SARPRV+1,struct atmif_sioc)
/* get pool statistics */
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 61/79] include/uapi/linux/scc.h: include linux/sockios.h
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (60 preceding siblings ...)
2015-10-15 5:56 ` [PATCH v4 60/79] include/uapi/linux/atm_zatm.h: include linux/time.h Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 62/79] include/uapi/linux/btrfs.h: define NULL Mikko Rapeli
` (18 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, linux-api
Fixes userspace compilation error:
error: ‘SIOCDEVPRIVATE’ undeclared here (not in a function)
SIOCSCCRESERVED = SIOCDEVPRIVATE
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/scc.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/uapi/linux/scc.h b/include/uapi/linux/scc.h
index 72b6b81..2992b88 100644
--- a/include/uapi/linux/scc.h
+++ b/include/uapi/linux/scc.h
@@ -3,6 +3,7 @@
#ifndef _UAPI_SCC_H
#define _UAPI_SCC_H
+#include <linux/sockios.h>
/* selection of hardware types */
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 62/79] include/uapi/linux/btrfs.h: define NULL
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (61 preceding siblings ...)
2015-10-15 5:56 ` [PATCH v4 61/79] include/uapi/linux/scc.h: include linux/sockios.h Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` Mikko Rapeli
` (17 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel
Cc: mikko.rapeli, Chris Mason, Takeuchi Satoru, David Sterba,
Eryu Guan, linux-api
Copied the NULL definition from include/linux/stddef.h which does not have
it in userspace.
Fixes userspace compilation error:
error: ‘NULL’ undeclared (first use in this function)
return NULL;
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/btrfs.h | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/include/uapi/linux/btrfs.h b/include/uapi/linux/btrfs.h
index b6dec05..a8ae69b 100644
--- a/include/uapi/linux/btrfs.h
+++ b/include/uapi/linux/btrfs.h
@@ -20,6 +20,12 @@
#define _UAPI_LINUX_BTRFS_H
#include <linux/types.h>
#include <linux/ioctl.h>
+#include <linux/stddef.h>
+
+/* for userspace where linux/stddef.h doesn't define this */
+#ifndef NULL
+#define NULL ((void *)0)
+#endif
#define BTRFS_IOCTL_MAGIC 0x94
#define BTRFS_VOL_NAME_MAX 255
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 63/79] include/uapi/linux/kexec.h: use __kernel_size_t instead of size_t
@ 2015-10-15 5:56 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, Eric Biederman, kexec, linux-api
Fixes userspace compilation error:
error: unknown type name ‘size_t’
size_t bufsz;
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/kexec.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/uapi/linux/kexec.h b/include/uapi/linux/kexec.h
index 99048e5..26be201 100644
--- a/include/uapi/linux/kexec.h
+++ b/include/uapi/linux/kexec.h
@@ -50,9 +50,9 @@
*/
struct kexec_segment {
const void *buf;
- size_t bufsz;
+ __kernel_size_t bufsz;
const void *mem;
- size_t memsz;
+ __kernel_size_t memsz;
};
#endif /* __KERNEL__ */
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 63/79] include/uapi/linux/kexec.h: use __kernel_size_t instead of size_t
@ 2015-10-15 5:56 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel-u79uwXL29TY76Z2rM5mHXA
Cc: mikko.rapeli-X3B1VOXEql0, Eric Biederman,
kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
linux-api-u79uwXL29TY76Z2rM5mHXA
Fixes userspace compilation error:
error: unknown type name ‘size_t’
size_t bufsz;
Signed-off-by: Mikko Rapeli <mikko.rapeli-X3B1VOXEql0@public.gmane.org>
---
include/uapi/linux/kexec.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/uapi/linux/kexec.h b/include/uapi/linux/kexec.h
index 99048e5..26be201 100644
--- a/include/uapi/linux/kexec.h
+++ b/include/uapi/linux/kexec.h
@@ -50,9 +50,9 @@
*/
struct kexec_segment {
const void *buf;
- size_t bufsz;
+ __kernel_size_t bufsz;
const void *mem;
- size_t memsz;
+ __kernel_size_t memsz;
};
#endif /* __KERNEL__ */
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 63/79] include/uapi/linux/kexec.h: use __kernel_size_t instead of size_t
@ 2015-10-15 5:56 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, kexec, Eric Biederman, linux-api
Fixes userspace compilation error:
error: unknown type name ‘size_t’
size_t bufsz;
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/kexec.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/uapi/linux/kexec.h b/include/uapi/linux/kexec.h
index 99048e5..26be201 100644
--- a/include/uapi/linux/kexec.h
+++ b/include/uapi/linux/kexec.h
@@ -50,9 +50,9 @@
*/
struct kexec_segment {
const void *buf;
- size_t bufsz;
+ __kernel_size_t bufsz;
const void *mem;
- size_t memsz;
+ __kernel_size_t memsz;
};
#endif /* __KERNEL__ */
--
2.5.0
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 64/79] include/uapi/linux/reiserfs_xattr.h: use __kernel_size_t instead of size_t
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (63 preceding siblings ...)
2015-10-15 5:56 ` Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 65/79] include/uapi/linux/patchkey.h: change #error to #warning if file included directly Mikko Rapeli
` (15 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, linux-api
Fixes userspace compilation error:
error: unknown type name ‘size_t’
size_t length;
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/reiserfs_xattr.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/uapi/linux/reiserfs_xattr.h b/include/uapi/linux/reiserfs_xattr.h
index 38fdd64..af52b38 100644
--- a/include/uapi/linux/reiserfs_xattr.h
+++ b/include/uapi/linux/reiserfs_xattr.h
@@ -18,7 +18,7 @@ struct reiserfs_xattr_header {
struct reiserfs_security_handle {
const char *name;
void *value;
- size_t length;
+ __kernel_size_t length;
};
#endif /* _LINUX_REISERFS_XATTR_H */
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 65/79] include/uapi/linux/patchkey.h: change #error to #warning if file included directly
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (64 preceding siblings ...)
2015-10-15 5:56 ` [PATCH v4 64/79] include/uapi/linux/reiserfs_xattr.h: " Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` Mikko Rapeli
` (14 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, linux-api
Would be nice to be able to compile all userspace header files also alone.
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/patchkey.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/uapi/linux/patchkey.h b/include/uapi/linux/patchkey.h
index 1bda0e5..cee195d 100644
--- a/include/uapi/linux/patchkey.h
+++ b/include/uapi/linux/patchkey.h
@@ -11,7 +11,7 @@
*/
#ifndef _LINUX_PATCHKEY_H_INDIRECT
-#error "patchkey.h included directly"
+#warning "patchkey.h included directly"
#endif
#ifndef _UAPI_LINUX_PATCHKEY_H
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 66/79] include/uapi/linux/coda.h: use __kernel_pid_t and add u_short etc definitions for userspace
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:55 ` [PATCH v4 02/79] scripts/headers_compile_test.sh: compile test script for exported headers Mikko Rapeli
` (79 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, Jan Harkes, coda, codalist, linux-api
Fixes userspace compilation errors about unknown pid_t, u_short etc types.
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/coda.h | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/include/uapi/linux/coda.h b/include/uapi/linux/coda.h
index 695fade..591bb42 100644
--- a/include/uapi/linux/coda.h
+++ b/include/uapi/linux/coda.h
@@ -100,7 +100,14 @@ typedef unsigned long long u_quad_t;
#if defined(__linux__)
#include <linux/time.h>
#define cdev_t u_quad_t
+typedef unsigned long u_long;
+typedef unsigned int u_int;
+typedef unsigned short u_short;
+typedef u_long ino_t;
+
#ifndef __KERNEL__
+typedef u_long dev_t;
+typedef void * caddr_t;
#if !defined(_UQUAD_T_) && (!defined(__GLIBC__) || __GLIBC__ < 2)
#define _UQUAD_T_ 1
typedef unsigned long long u_quad_t;
@@ -295,8 +302,8 @@ struct coda_statfs {
struct coda_in_hdr {
u_int32_t opcode;
u_int32_t unique; /* Keep multiple outstanding msgs distinct */
- pid_t pid;
- pid_t pgid;
+ __kernel_pid_t pid;
+ __kernel_pid_t pgid;
vuid_t uid;
};
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 66/79] include/uapi/linux/coda.h: use __kernel_pid_t and add u_short etc definitions for userspace
@ 2015-10-15 5:56 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, Jan Harkes, coda, codalist, linux-api
Fixes userspace compilation errors about unknown pid_t, u_short etc types.
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/coda.h | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/include/uapi/linux/coda.h b/include/uapi/linux/coda.h
index 695fade..591bb42 100644
--- a/include/uapi/linux/coda.h
+++ b/include/uapi/linux/coda.h
@@ -100,7 +100,14 @@ typedef unsigned long long u_quad_t;
#if defined(__linux__)
#include <linux/time.h>
#define cdev_t u_quad_t
+typedef unsigned long u_long;
+typedef unsigned int u_int;
+typedef unsigned short u_short;
+typedef u_long ino_t;
+
#ifndef __KERNEL__
+typedef u_long dev_t;
+typedef void * caddr_t;
#if !defined(_UQUAD_T_) && (!defined(__GLIBC__) || __GLIBC__ < 2)
#define _UQUAD_T_ 1
typedef unsigned long long u_quad_t;
@@ -295,8 +302,8 @@ struct coda_statfs {
struct coda_in_hdr {
u_int32_t opcode;
u_int32_t unique; /* Keep multiple outstanding msgs distinct */
- pid_t pid;
- pid_t pgid;
+ __kernel_pid_t pid;
+ __kernel_pid_t pgid;
vuid_t uid;
};
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 67/79] include/uapi/linux/android/binder.h: use __kernel_pid_t and __kernel_uid_t
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (66 preceding siblings ...)
2015-10-15 5:56 ` Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 68/79] arch/x86/include/uapi/asm/sembuf.h: include linux/types.h and linux/ipc.h Mikko Rapeli
` (12 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, Greg Kroah-Hartman, linux-api
Fixes userspace compilation errors:
error: unknown type name ‘pid_t’
pid_t sender_pid
error: unknown type name ‘uid_t’
uid_t sender_euid;
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/android/binder.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/uapi/linux/android/binder.h b/include/uapi/linux/android/binder.h
index 41420e3..4e4a385 100644
--- a/include/uapi/linux/android/binder.h
+++ b/include/uapi/linux/android/binder.h
@@ -142,8 +142,8 @@ struct binder_transaction_data {
/* General information about the transaction. */
__u32 flags;
- pid_t sender_pid;
- uid_t sender_euid;
+ __kernel_pid_t sender_pid;
+ __kernel_uid_t sender_euid;
binder_size_t data_size; /* number of bytes of data */
binder_size_t offsets_size; /* number of bytes of offsets */
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 68/79] arch/x86/include/uapi/asm/sembuf.h: include linux/types.h and linux/ipc.h
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (67 preceding siblings ...)
2015-10-15 5:56 ` [PATCH v4 67/79] include/uapi/linux/android/binder.h: use __kernel_pid_t and __kernel_uid_t Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 69/79] include/uapi/linux/dvb/video.h: remove stdint.h include Mikko Rapeli
` (11 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel
Cc: mikko.rapeli, Thomas Gleixner, Ingo Molnar, H. Peter Anvin, x86
Fixes userspace compile errors like:
error: field ‘sem_perm’ has incomplete type
struct ipc64_perm sem_perm; /* permissions .. see ipc.h */
error: unknown type name ‘__kernel_time_t’
__kernel_time_t sem_otime; /* last semop time */
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
arch/x86/include/uapi/asm/sembuf.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/arch/x86/include/uapi/asm/sembuf.h b/arch/x86/include/uapi/asm/sembuf.h
index cc2d6a3..f11ed52 100644
--- a/arch/x86/include/uapi/asm/sembuf.h
+++ b/arch/x86/include/uapi/asm/sembuf.h
@@ -1,6 +1,9 @@
#ifndef _ASM_X86_SEMBUF_H
#define _ASM_X86_SEMBUF_H
+#include <linux/types.h>
+#include <linux/ipc.h>
+
/*
* The semid64_ds structure for x86 architecture.
* Note extra padding because this structure is passed back and forth
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 69/79] include/uapi/linux/dvb/video.h: remove stdint.h include
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (68 preceding siblings ...)
2015-10-15 5:56 ` [PATCH v4 68/79] arch/x86/include/uapi/asm/sembuf.h: include linux/types.h and linux/ipc.h Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` Mikko Rapeli
` (10 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, Mauro Carvalho Chehab, linux-media, linux-api
Kernel headers should use linux/types.h instead.
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/dvb/video.h | 1 -
1 file changed, 1 deletion(-)
diff --git a/include/uapi/linux/dvb/video.h b/include/uapi/linux/dvb/video.h
index d3d14a59..4939256 100644
--- a/include/uapi/linux/dvb/video.h
+++ b/include/uapi/linux/dvb/video.h
@@ -26,7 +26,6 @@
#include <linux/types.h>
#ifndef __KERNEL__
-#include <stdint.h>
#include <time.h>
#endif
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 70/79] include/uapi/mtd/mtd-user.h: remove stdint.h include
@ 2015-10-15 5:56 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel
Cc: mikko.rapeli, David Woodhouse, Brian Norris, linux-mtd, linux-api
Kernel headers should use linux/types.h instead.
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/mtd/mtd-user.h | 2 --
1 file changed, 2 deletions(-)
diff --git a/include/uapi/mtd/mtd-user.h b/include/uapi/mtd/mtd-user.h
index 83327c8..e71d555 100644
--- a/include/uapi/mtd/mtd-user.h
+++ b/include/uapi/mtd/mtd-user.h
@@ -20,8 +20,6 @@
#ifndef __MTD_USER_H__
#define __MTD_USER_H__
-#include <stdint.h>
-
/* This file is blessed for inclusion by userspace */
#include <mtd/mtd-abi.h>
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 70/79] include/uapi/mtd/mtd-user.h: remove stdint.h include
@ 2015-10-15 5:56 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel-u79uwXL29TY76Z2rM5mHXA
Cc: mikko.rapeli-X3B1VOXEql0, David Woodhouse, Brian Norris,
linux-mtd-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
linux-api-u79uwXL29TY76Z2rM5mHXA
Kernel headers should use linux/types.h instead.
Signed-off-by: Mikko Rapeli <mikko.rapeli-X3B1VOXEql0@public.gmane.org>
---
include/uapi/mtd/mtd-user.h | 2 --
1 file changed, 2 deletions(-)
diff --git a/include/uapi/mtd/mtd-user.h b/include/uapi/mtd/mtd-user.h
index 83327c8..e71d555 100644
--- a/include/uapi/mtd/mtd-user.h
+++ b/include/uapi/mtd/mtd-user.h
@@ -20,8 +20,6 @@
#ifndef __MTD_USER_H__
#define __MTD_USER_H__
-#include <stdint.h>
-
/* This file is blessed for inclusion by userspace */
#include <mtd/mtd-abi.h>
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 71/79] include/uapi/linux/fuse.h: use linux/types.h also in userspace
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (70 preceding siblings ...)
2015-10-15 5:56 ` Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 15:20 ` Miklos Szeredi
2015-10-15 5:56 ` [PATCH v4 72/79] include/linux/ipmi-fru.h: use linux/types.h instead of stdint.h Mikko Rapeli
` (8 subsequent siblings)
80 siblings, 1 reply; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, Miklos Szeredi, fuse-devel, linux-api
Kernel headers should not use stdint.h.
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/fuse.h | 440 +++++++++++++++++++++++-----------------------
1 file changed, 218 insertions(+), 222 deletions(-)
diff --git a/include/uapi/linux/fuse.h b/include/uapi/linux/fuse.h
index c9aca04..a25e329 100644
--- a/include/uapi/linux/fuse.h
+++ b/include/uapi/linux/fuse.h
@@ -107,11 +107,7 @@
#ifndef _LINUX_FUSE_H
#define _LINUX_FUSE_H
-#ifdef __KERNEL__
#include <linux/types.h>
-#else
-#include <stdint.h>
-#endif
/*
* Version negotiation:
@@ -146,42 +142,42 @@
userspace works under 64bit kernels */
struct fuse_attr {
- uint64_t ino;
- uint64_t size;
- uint64_t blocks;
- uint64_t atime;
- uint64_t mtime;
- uint64_t ctime;
- uint32_t atimensec;
- uint32_t mtimensec;
- uint32_t ctimensec;
- uint32_t mode;
- uint32_t nlink;
- uint32_t uid;
- uint32_t gid;
- uint32_t rdev;
- uint32_t blksize;
- uint32_t padding;
+ __u64 ino;
+ __u64 size;
+ __u64 blocks;
+ __u64 atime;
+ __u64 mtime;
+ __u64 ctime;
+ __u32 atimensec;
+ __u32 mtimensec;
+ __u32 ctimensec;
+ __u32 mode;
+ __u32 nlink;
+ __u32 uid;
+ __u32 gid;
+ __u32 rdev;
+ __u32 blksize;
+ __u32 padding;
};
struct fuse_kstatfs {
- uint64_t blocks;
- uint64_t bfree;
- uint64_t bavail;
- uint64_t files;
- uint64_t ffree;
- uint32_t bsize;
- uint32_t namelen;
- uint32_t frsize;
- uint32_t padding;
- uint32_t spare[6];
+ __u64 blocks;
+ __u64 bfree;
+ __u64 bavail;
+ __u64 files;
+ __u64 ffree;
+ __u32 bsize;
+ __u32 namelen;
+ __u32 frsize;
+ __u32 padding;
+ __u32 spare[6];
};
struct fuse_file_lock {
- uint64_t start;
- uint64_t end;
- uint32_t type;
- uint32_t pid; /* tgid */
+ __u64 start;
+ __u64 end;
+ __u32 type;
+ __u32 pid; /* tgid */
};
/**
@@ -379,149 +375,149 @@ enum fuse_notify_code {
#define FUSE_COMPAT_ENTRY_OUT_SIZE 120
struct fuse_entry_out {
- uint64_t nodeid; /* Inode ID */
- uint64_t generation; /* Inode generation: nodeid:gen must
+ __u64 nodeid; /* Inode ID */
+ __u64 generation; /* Inode generation: nodeid:gen must
be unique for the fs's lifetime */
- uint64_t entry_valid; /* Cache timeout for the name */
- uint64_t attr_valid; /* Cache timeout for the attributes */
- uint32_t entry_valid_nsec;
- uint32_t attr_valid_nsec;
+ __u64 entry_valid; /* Cache timeout for the name */
+ __u64 attr_valid; /* Cache timeout for the attributes */
+ __u32 entry_valid_nsec;
+ __u32 attr_valid_nsec;
struct fuse_attr attr;
};
struct fuse_forget_in {
- uint64_t nlookup;
+ __u64 nlookup;
};
struct fuse_forget_one {
- uint64_t nodeid;
- uint64_t nlookup;
+ __u64 nodeid;
+ __u64 nlookup;
};
struct fuse_batch_forget_in {
- uint32_t count;
- uint32_t dummy;
+ __u32 count;
+ __u32 dummy;
};
struct fuse_getattr_in {
- uint32_t getattr_flags;
- uint32_t dummy;
- uint64_t fh;
+ __u32 getattr_flags;
+ __u32 dummy;
+ __u64 fh;
};
#define FUSE_COMPAT_ATTR_OUT_SIZE 96
struct fuse_attr_out {
- uint64_t attr_valid; /* Cache timeout for the attributes */
- uint32_t attr_valid_nsec;
- uint32_t dummy;
+ __u64 attr_valid; /* Cache timeout for the attributes */
+ __u32 attr_valid_nsec;
+ __u32 dummy;
struct fuse_attr attr;
};
#define FUSE_COMPAT_MKNOD_IN_SIZE 8
struct fuse_mknod_in {
- uint32_t mode;
- uint32_t rdev;
- uint32_t umask;
- uint32_t padding;
+ __u32 mode;
+ __u32 rdev;
+ __u32 umask;
+ __u32 padding;
};
struct fuse_mkdir_in {
- uint32_t mode;
- uint32_t umask;
+ __u32 mode;
+ __u32 umask;
};
struct fuse_rename_in {
- uint64_t newdir;
+ __u64 newdir;
};
struct fuse_rename2_in {
- uint64_t newdir;
- uint32_t flags;
- uint32_t padding;
+ __u64 newdir;
+ __u32 flags;
+ __u32 padding;
};
struct fuse_link_in {
- uint64_t oldnodeid;
+ __u64 oldnodeid;
};
struct fuse_setattr_in {
- uint32_t valid;
- uint32_t padding;
- uint64_t fh;
- uint64_t size;
- uint64_t lock_owner;
- uint64_t atime;
- uint64_t mtime;
- uint64_t ctime;
- uint32_t atimensec;
- uint32_t mtimensec;
- uint32_t ctimensec;
- uint32_t mode;
- uint32_t unused4;
- uint32_t uid;
- uint32_t gid;
- uint32_t unused5;
+ __u32 valid;
+ __u32 padding;
+ __u64 fh;
+ __u64 size;
+ __u64 lock_owner;
+ __u64 atime;
+ __u64 mtime;
+ __u64 ctime;
+ __u32 atimensec;
+ __u32 mtimensec;
+ __u32 ctimensec;
+ __u32 mode;
+ __u32 unused4;
+ __u32 uid;
+ __u32 gid;
+ __u32 unused5;
};
struct fuse_open_in {
- uint32_t flags;
- uint32_t unused;
+ __u32 flags;
+ __u32 unused;
};
struct fuse_create_in {
- uint32_t flags;
- uint32_t mode;
- uint32_t umask;
- uint32_t padding;
+ __u32 flags;
+ __u32 mode;
+ __u32 umask;
+ __u32 padding;
};
struct fuse_open_out {
- uint64_t fh;
- uint32_t open_flags;
- uint32_t padding;
+ __u64 fh;
+ __u32 open_flags;
+ __u32 padding;
};
struct fuse_release_in {
- uint64_t fh;
- uint32_t flags;
- uint32_t release_flags;
- uint64_t lock_owner;
+ __u64 fh;
+ __u32 flags;
+ __u32 release_flags;
+ __u64 lock_owner;
};
struct fuse_flush_in {
- uint64_t fh;
- uint32_t unused;
- uint32_t padding;
- uint64_t lock_owner;
+ __u64 fh;
+ __u32 unused;
+ __u32 padding;
+ __u64 lock_owner;
};
struct fuse_read_in {
- uint64_t fh;
- uint64_t offset;
- uint32_t size;
- uint32_t read_flags;
- uint64_t lock_owner;
- uint32_t flags;
- uint32_t padding;
+ __u64 fh;
+ __u64 offset;
+ __u32 size;
+ __u32 read_flags;
+ __u64 lock_owner;
+ __u32 flags;
+ __u32 padding;
};
#define FUSE_COMPAT_WRITE_IN_SIZE 24
struct fuse_write_in {
- uint64_t fh;
- uint64_t offset;
- uint32_t size;
- uint32_t write_flags;
- uint64_t lock_owner;
- uint32_t flags;
- uint32_t padding;
+ __u64 fh;
+ __u64 offset;
+ __u32 size;
+ __u32 write_flags;
+ __u64 lock_owner;
+ __u32 flags;
+ __u32 padding;
};
struct fuse_write_out {
- uint32_t size;
- uint32_t padding;
+ __u32 size;
+ __u32 padding;
};
#define FUSE_COMPAT_STATFS_SIZE 48
@@ -531,32 +527,32 @@ struct fuse_statfs_out {
};
struct fuse_fsync_in {
- uint64_t fh;
- uint32_t fsync_flags;
- uint32_t padding;
+ __u64 fh;
+ __u32 fsync_flags;
+ __u32 padding;
};
struct fuse_setxattr_in {
- uint32_t size;
- uint32_t flags;
+ __u32 size;
+ __u32 flags;
};
struct fuse_getxattr_in {
- uint32_t size;
- uint32_t padding;
+ __u32 size;
+ __u32 padding;
};
struct fuse_getxattr_out {
- uint32_t size;
- uint32_t padding;
+ __u32 size;
+ __u32 padding;
};
struct fuse_lk_in {
- uint64_t fh;
- uint64_t owner;
+ __u64 fh;
+ __u64 owner;
struct fuse_file_lock lk;
- uint32_t lk_flags;
- uint32_t padding;
+ __u32 lk_flags;
+ __u32 padding;
};
struct fuse_lk_out {
@@ -564,140 +560,140 @@ struct fuse_lk_out {
};
struct fuse_access_in {
- uint32_t mask;
- uint32_t padding;
+ __u32 mask;
+ __u32 padding;
};
struct fuse_init_in {
- uint32_t major;
- uint32_t minor;
- uint32_t max_readahead;
- uint32_t flags;
+ __u32 major;
+ __u32 minor;
+ __u32 max_readahead;
+ __u32 flags;
};
#define FUSE_COMPAT_INIT_OUT_SIZE 8
#define FUSE_COMPAT_22_INIT_OUT_SIZE 24
struct fuse_init_out {
- uint32_t major;
- uint32_t minor;
- uint32_t max_readahead;
- uint32_t flags;
- uint16_t max_background;
- uint16_t congestion_threshold;
- uint32_t max_write;
- uint32_t time_gran;
- uint32_t unused[9];
+ __u32 major;
+ __u32 minor;
+ __u32 max_readahead;
+ __u32 flags;
+ __u16 max_background;
+ __u16 congestion_threshold;
+ __u32 max_write;
+ __u32 time_gran;
+ __u32 unused[9];
};
#define CUSE_INIT_INFO_MAX 4096
struct cuse_init_in {
- uint32_t major;
- uint32_t minor;
- uint32_t unused;
- uint32_t flags;
+ __u32 major;
+ __u32 minor;
+ __u32 unused;
+ __u32 flags;
};
struct cuse_init_out {
- uint32_t major;
- uint32_t minor;
- uint32_t unused;
- uint32_t flags;
- uint32_t max_read;
- uint32_t max_write;
- uint32_t dev_major; /* chardev major */
- uint32_t dev_minor; /* chardev minor */
- uint32_t spare[10];
+ __u32 major;
+ __u32 minor;
+ __u32 unused;
+ __u32 flags;
+ __u32 max_read;
+ __u32 max_write;
+ __u32 dev_major; /* chardev major */
+ __u32 dev_minor; /* chardev minor */
+ __u32 spare[10];
};
struct fuse_interrupt_in {
- uint64_t unique;
+ __u64 unique;
};
struct fuse_bmap_in {
- uint64_t block;
- uint32_t blocksize;
- uint32_t padding;
+ __u64 block;
+ __u32 blocksize;
+ __u32 padding;
};
struct fuse_bmap_out {
- uint64_t block;
+ __u64 block;
};
struct fuse_ioctl_in {
- uint64_t fh;
- uint32_t flags;
- uint32_t cmd;
- uint64_t arg;
- uint32_t in_size;
- uint32_t out_size;
+ __u64 fh;
+ __u32 flags;
+ __u32 cmd;
+ __u64 arg;
+ __u32 in_size;
+ __u32 out_size;
};
struct fuse_ioctl_iovec {
- uint64_t base;
- uint64_t len;
+ __u64 base;
+ __u64 len;
};
struct fuse_ioctl_out {
- int32_t result;
- uint32_t flags;
- uint32_t in_iovs;
- uint32_t out_iovs;
+ __s32 result;
+ __u32 flags;
+ __u32 in_iovs;
+ __u32 out_iovs;
};
struct fuse_poll_in {
- uint64_t fh;
- uint64_t kh;
- uint32_t flags;
- uint32_t events;
+ __u64 fh;
+ __u64 kh;
+ __u32 flags;
+ __u32 events;
};
struct fuse_poll_out {
- uint32_t revents;
- uint32_t padding;
+ __u32 revents;
+ __u32 padding;
};
struct fuse_notify_poll_wakeup_out {
- uint64_t kh;
+ __u64 kh;
};
struct fuse_fallocate_in {
- uint64_t fh;
- uint64_t offset;
- uint64_t length;
- uint32_t mode;
- uint32_t padding;
+ __u64 fh;
+ __u64 offset;
+ __u64 length;
+ __u32 mode;
+ __u32 padding;
};
struct fuse_in_header {
- uint32_t len;
- uint32_t opcode;
- uint64_t unique;
- uint64_t nodeid;
- uint32_t uid;
- uint32_t gid;
- uint32_t pid;
- uint32_t padding;
+ __u32 len;
+ __u32 opcode;
+ __u64 unique;
+ __u64 nodeid;
+ __u32 uid;
+ __u32 gid;
+ __u32 pid;
+ __u32 padding;
};
struct fuse_out_header {
- uint32_t len;
- int32_t error;
- uint64_t unique;
+ __u32 len;
+ __s32 error;
+ __u64 unique;
};
struct fuse_dirent {
- uint64_t ino;
- uint64_t off;
- uint32_t namelen;
- uint32_t type;
+ __u64 ino;
+ __u64 off;
+ __u32 namelen;
+ __u32 type;
char name[];
};
#define FUSE_NAME_OFFSET offsetof(struct fuse_dirent, name)
#define FUSE_DIRENT_ALIGN(x) \
- (((x) + sizeof(uint64_t) - 1) & ~(sizeof(uint64_t) - 1))
+ (((x) + sizeof(__u64) - 1) & ~(sizeof(__u64) - 1))
#define FUSE_DIRENT_SIZE(d) \
FUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET + (d)->namelen)
@@ -712,47 +708,47 @@ struct fuse_direntplus {
FUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET_DIRENTPLUS + (d)->dirent.namelen)
struct fuse_notify_inval_inode_out {
- uint64_t ino;
- int64_t off;
- int64_t len;
+ __u64 ino;
+ __s64 off;
+ __s64 len;
};
struct fuse_notify_inval_entry_out {
- uint64_t parent;
- uint32_t namelen;
- uint32_t padding;
+ __u64 parent;
+ __u32 namelen;
+ __u32 padding;
};
struct fuse_notify_delete_out {
- uint64_t parent;
- uint64_t child;
- uint32_t namelen;
- uint32_t padding;
+ __u64 parent;
+ __u64 child;
+ __u32 namelen;
+ __u32 padding;
};
struct fuse_notify_store_out {
- uint64_t nodeid;
- uint64_t offset;
- uint32_t size;
- uint32_t padding;
+ __u64 nodeid;
+ __u64 offset;
+ __u32 size;
+ __u32 padding;
};
struct fuse_notify_retrieve_out {
- uint64_t notify_unique;
- uint64_t nodeid;
- uint64_t offset;
- uint32_t size;
- uint32_t padding;
+ __u64 notify_unique;
+ __u64 nodeid;
+ __u64 offset;
+ __u32 size;
+ __u32 padding;
};
/* Matches the size of fuse_write_in */
struct fuse_notify_retrieve_in {
- uint64_t dummy1;
- uint64_t offset;
- uint32_t size;
- uint32_t dummy2;
- uint64_t dummy3;
- uint64_t dummy4;
+ __u64 dummy1;
+ __u64 offset;
+ __u32 size;
+ __u32 dummy2;
+ __u64 dummy3;
+ __u64 dummy4;
};
/* Device ioctls: */
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 72/79] include/linux/ipmi-fru.h: use linux/types.h instead of stdint.h
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (71 preceding siblings ...)
2015-10-15 5:56 ` [PATCH v4 71/79] include/uapi/linux/fuse.h: use linux/types.h also in userspace Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 73/79] include/linux/sdb.h: use linux/types.h types " Mikko Rapeli
` (7 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel
Cc: mikko.rapeli, Corey Minyard, Alessandro Rubini, openipmi-developer
Kernel headers should use linux/types.h types.
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/linux/ipmi-fru.h | 31 +++++++++++++++----------------
1 file changed, 15 insertions(+), 16 deletions(-)
diff --git a/include/linux/ipmi-fru.h b/include/linux/ipmi-fru.h
index 4d3a763..ceecf1f 100644
--- a/include/linux/ipmi-fru.h
+++ b/include/linux/ipmi-fru.h
@@ -9,11 +9,10 @@
*/
#ifndef __LINUX_IPMI_FRU_H__
#define __LINUX_IPMI_FRU_H__
-#ifdef __KERNEL__
# include <linux/types.h>
+#ifdef __KERNEL__
# include <linux/string.h>
#else
-# include <stdint.h>
# include <string.h>
#endif
@@ -24,14 +23,14 @@
/* chapter 8, page 5 */
struct fru_common_header {
- uint8_t format; /* 0x01 */
- uint8_t internal_use_off; /* multiple of 8 bytes */
- uint8_t chassis_info_off; /* multiple of 8 bytes */
- uint8_t board_area_off; /* multiple of 8 bytes */
- uint8_t product_area_off; /* multiple of 8 bytes */
- uint8_t multirecord_off; /* multiple of 8 bytes */
- uint8_t pad; /* must be 0 */
- uint8_t checksum; /* sum modulo 256 must be 0 */
+ __u8 format; /* 0x01 */
+ __u8 internal_use_off; /* multiple of 8 bytes */
+ __u8 chassis_info_off; /* multiple of 8 bytes */
+ __u8 board_area_off; /* multiple of 8 bytes */
+ __u8 product_area_off; /* multiple of 8 bytes */
+ __u8 multirecord_off; /* multiple of 8 bytes */
+ __u8 pad; /* must be 0 */
+ __u8 checksum; /* sum modulo 256 must be 0 */
};
/* chapter 9, page 5 -- internal_use: not used by us */
@@ -40,16 +39,16 @@ struct fru_common_header {
/* chapter 13, page 9 -- used by board_info_area below */
struct fru_type_length {
- uint8_t type_length;
- uint8_t data[0];
+ __u8 type_length;
+ __u8 data[0];
};
/* chapter 11, page 7 */
struct fru_board_info_area {
- uint8_t format; /* 0x01 */
- uint8_t area_len; /* multiple of 8 bytes */
- uint8_t language; /* I hope it's 0 */
- uint8_t mfg_date[3]; /* LSB, minutes since 1996-01-01 */
+ __u8 format; /* 0x01 */
+ __u8 area_len; /* multiple of 8 bytes */
+ __u8 language; /* I hope it's 0 */
+ __u8 mfg_date[3]; /* LSB, minutes since 1996-01-01 */
struct fru_type_length tl[0]; /* type-length stuff follows */
/*
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 73/79] include/linux/sdb.h: use linux/types.h types instead of stdint.h
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (72 preceding siblings ...)
2015-10-15 5:56 ` [PATCH v4 72/79] include/linux/ipmi-fru.h: use linux/types.h instead of stdint.h Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 74/79] include/linux/xz.h: " Mikko Rapeli
` (6 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli
Kernel headers should use linux/types.h types.
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/linux/sdb.h | 62 +++++++++++++++++++++++++----------------------------
1 file changed, 29 insertions(+), 33 deletions(-)
diff --git a/include/linux/sdb.h b/include/linux/sdb.h
index fbb76a4..e9ff976 100644
--- a/include/linux/sdb.h
+++ b/include/linux/sdb.h
@@ -3,11 +3,7 @@
*/
#ifndef __SDB_H__
#define __SDB_H__
-#ifdef __KERNEL__
#include <linux/types.h>
-#else
-#include <stdint.h>
-#endif
/*
* All structures are 64 bytes long and are expected
@@ -25,12 +21,12 @@
* and not terminated with a 0 byte.
*/
struct sdb_product {
- uint64_t vendor_id; /* 0x18..0x1f */
- uint32_t device_id; /* 0x20..0x23 */
- uint32_t version; /* 0x24..0x27 */
- uint32_t date; /* 0x28..0x2b */
- uint8_t name[19]; /* 0x2c..0x3e */
- uint8_t record_type; /* 0x3f */
+ __u64 vendor_id; /* 0x18..0x1f */
+ __u32 device_id; /* 0x20..0x23 */
+ __u32 version; /* 0x24..0x27 */
+ __u32 date; /* 0x28..0x2b */
+ __u8 name[19]; /* 0x2c..0x3e */
+ __u8 record_type; /* 0x3f */
};
/*
@@ -40,8 +36,8 @@ struct sdb_product {
* (for example 0x100000 - 0x10ffff)
*/
struct sdb_component {
- uint64_t addr_first; /* 0x08..0x0f */
- uint64_t addr_last; /* 0x10..0x17 */
+ __u64 addr_first; /* 0x08..0x0f */
+ __u64 addr_last; /* 0x10..0x17 */
struct sdb_product product; /* 0x18..0x3f */
};
@@ -63,10 +59,10 @@ enum sdb_record_type {
*/
#define SDB_MAGIC 0x5344422d /* "SDB-" */
struct sdb_interconnect {
- uint32_t sdb_magic; /* 0x00-0x03 */
- uint16_t sdb_records; /* 0x04-0x05 */
- uint8_t sdb_version; /* 0x06 */
- uint8_t sdb_bus_type; /* 0x07 */
+ __u32 sdb_magic; /* 0x00-0x03 */
+ __u16 sdb_records; /* 0x04-0x05 */
+ __u8 sdb_version; /* 0x06 */
+ __u8 sdb_bus_type; /* 0x07 */
struct sdb_component sdb_component; /* 0x08-0x3f */
};
@@ -77,10 +73,10 @@ struct sdb_interconnect {
* bus-specific bits are defined by each bus (see below)
*/
struct sdb_device {
- uint16_t abi_class; /* 0x00-0x01 */
- uint8_t abi_ver_major; /* 0x02 */
- uint8_t abi_ver_minor; /* 0x03 */
- uint32_t bus_specific; /* 0x04-0x07 */
+ __u16 abi_class; /* 0x00-0x01 */
+ __u8 abi_ver_major; /* 0x02 */
+ __u8 abi_ver_minor; /* 0x03 */
+ __u32 bus_specific; /* 0x04-0x07 */
struct sdb_component sdb_component; /* 0x08-0x3f */
};
@@ -89,7 +85,7 @@ struct sdb_device {
* child is the address of the nested SDB table
*/
struct sdb_bridge {
- uint64_t sdb_child; /* 0x00-0x07 */
+ __u64 sdb_child; /* 0x00-0x07 */
struct sdb_component sdb_component; /* 0x08-0x3f */
};
@@ -100,7 +96,7 @@ struct sdb_bridge {
* just provide product information for an aggregate device
*/
struct sdb_integration {
- uint8_t reserved[24]; /* 0x00-0x17 */
+ __u8 reserved[24]; /* 0x00-0x17 */
struct sdb_product product; /* 0x08-0x3f */
};
@@ -109,8 +105,8 @@ struct sdb_integration {
* again, an informative field that software can ignore
*/
struct sdb_repo_url {
- uint8_t repo_url[63]; /* 0x00-0x3e */
- uint8_t record_type; /* 0x3f */
+ __u8 repo_url[63]; /* 0x00-0x3e */
+ __u8 record_type; /* 0x3f */
};
/* Type 0x82: Synthesis tool information
@@ -118,13 +114,13 @@ struct sdb_repo_url {
* this informative record
*/
struct sdb_synthesis {
- uint8_t syn_name[16]; /* 0x00-0x0f */
- uint8_t commit_id[16]; /* 0x10-0x1f */
- uint8_t tool_name[8]; /* 0x20-0x27 */
- uint32_t tool_version; /* 0x28-0x2b */
- uint32_t date; /* 0x2c-0x2f */
- uint8_t user_name[15]; /* 0x30-0x3e */
- uint8_t record_type; /* 0x3f */
+ __u8 syn_name[16]; /* 0x00-0x0f */
+ __u8 commit_id[16]; /* 0x10-0x1f */
+ __u8 tool_name[8]; /* 0x20-0x27 */
+ __u32 tool_version; /* 0x28-0x2b */
+ __u32 date; /* 0x2c-0x2f */
+ __u8 user_name[15]; /* 0x30-0x3e */
+ __u8 record_type; /* 0x3f */
};
/* Type 0xff: empty
@@ -135,8 +131,8 @@ struct sdb_synthesis {
* It can also be used to pad a table to a desired length.
*/
struct sdb_empty {
- uint8_t reserved[63]; /* 0x00-0x3e */
- uint8_t record_type; /* 0x3f */
+ __u8 reserved[63]; /* 0x00-0x3e */
+ __u8 record_type; /* 0x3f */
};
/* The type of bus, for bus-specific flags */
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 74/79] include/linux/xz.h: use linux/types.h types instead of stdint.h
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (73 preceding siblings ...)
2015-10-15 5:56 ` [PATCH v4 73/79] include/linux/sdb.h: use linux/types.h types " Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 75/79] include/uapi/xen/privcmd.h: fix compilation in userspace Mikko Rapeli
` (5 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli
Kernel headers should use linux/types.h types.
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/linux/xz.h | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/include/linux/xz.h b/include/linux/xz.h
index 64cffa6..7686511 100644
--- a/include/linux/xz.h
+++ b/include/linux/xz.h
@@ -11,12 +11,11 @@
#ifndef XZ_H
#define XZ_H
+# include <linux/types.h>
#ifdef __KERNEL__
# include <linux/stddef.h>
-# include <linux/types.h>
#else
# include <stddef.h>
-# include <stdint.h>
#endif
/* In Linux, this is used to make extern functions static when needed. */
@@ -134,11 +133,11 @@ enum xz_ret {
* the variables in_pos and out_pos are modified by the XZ code.
*/
struct xz_buf {
- const uint8_t *in;
+ const __u8 *in;
size_t in_pos;
size_t in_size;
- uint8_t *out;
+ __u8 *out;
size_t out_pos;
size_t out_size;
};
@@ -191,7 +190,7 @@ struct xz_dec;
* ready to be used with xz_dec_run(). If memory allocation fails,
* xz_dec_init() returns NULL.
*/
-XZ_EXTERN struct xz_dec *xz_dec_init(enum xz_mode mode, uint32_t dict_max);
+XZ_EXTERN struct xz_dec *xz_dec_init(enum xz_mode mode, __u32 dict_max);
/**
* xz_dec_run() - Run the XZ decoder
@@ -259,6 +258,6 @@ XZ_EXTERN void xz_crc32_init(void);
* calculation, the third argument must be zero. To continue the calculation,
* the previously returned value is passed as the third argument.
*/
-XZ_EXTERN uint32_t xz_crc32(const uint8_t *buf, size_t size, uint32_t crc);
+XZ_EXTERN __u32 xz_crc32(const __u8 *buf, size_t size, __u32 crc);
#endif
#endif
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 75/79] include/uapi/xen/privcmd.h: fix compilation in userspace
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:55 ` [PATCH v4 02/79] scripts/headers_compile_test.sh: compile test script for exported headers Mikko Rapeli
` (79 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel
Cc: mikko.rapeli, Stefano Stabellini, Russell King,
Konrad Rzeszutek Wilk, Boris Ostrovsky, David Vrabel, xen-devel,
linux-arm-kernel, linux-api
xen/interface/xen.h is not exported from kernel headers so remove the
dependency and provide needed defines for domid_t and xen_pfn_t if they
are not already defined by some other e.g. Xen specific headers.
Suggested by Andrew Cooper <andrew.cooper3@citrix.com> on lkml message
<5569F9C9.8000607@citrix.com>.
The ifdef for ARM is ugly but did not find better solutions for it.
Fixes userspace compilation error:
xen/privcmd.h:38:31: fatal error: xen/interface/xen.h: No such file or directory
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
arch/arm/include/asm/xen/interface.h | 2 +-
include/uapi/xen/privcmd.h | 14 +++++++++++++-
2 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/arch/arm/include/asm/xen/interface.h b/arch/arm/include/asm/xen/interface.h
index 5006600..68a9d99 100644
--- a/arch/arm/include/asm/xen/interface.h
+++ b/arch/arm/include/asm/xen/interface.h
@@ -36,7 +36,7 @@
* fine since it simply wouldn't be able to create any sure pfns in
* the first place.
*/
-typedef uint64_t xen_pfn_t;
+typedef __u64 xen_pfn_t;
#define PRI_xen_pfn "llx"
typedef uint64_t xen_ulong_t;
#define PRI_xen_ulong "llx"
diff --git a/include/uapi/xen/privcmd.h b/include/uapi/xen/privcmd.h
index 7ddeeda..95b73a9 100644
--- a/include/uapi/xen/privcmd.h
+++ b/include/uapi/xen/privcmd.h
@@ -35,7 +35,19 @@
#include <linux/types.h>
#include <linux/compiler.h>
-#include <xen/interface/xen.h>
+
+/* Might be defined by Xen specific headers, but if not */
+#ifndef domid_t
+typedef __u16 domid_t;
+#endif /* domid_t */
+
+#ifndef xen_pfn_t
+#if (defined __ARMEL__ || defined __ARMEB__)
+typedef __u64 xen_pfn_t;
+#else
+typedef unsigned long xen_pfn_t;
+#endif /* (defined __ARMEL__ || defined __ARMEB__) */
+#endif /* xen_pfn_t */
struct privcmd_hypercall {
__u64 op;
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 75/79] include/uapi/xen/privcmd.h: fix compilation in userspace
@ 2015-10-15 5:56 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-arm-kernel
xen/interface/xen.h is not exported from kernel headers so remove the
dependency and provide needed defines for domid_t and xen_pfn_t if they
are not already defined by some other e.g. Xen specific headers.
Suggested by Andrew Cooper <andrew.cooper3@citrix.com> on lkml message
<5569F9C9.8000607@citrix.com>.
The ifdef for ARM is ugly but did not find better solutions for it.
Fixes userspace compilation error:
xen/privcmd.h:38:31: fatal error: xen/interface/xen.h: No such file or directory
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
arch/arm/include/asm/xen/interface.h | 2 +-
include/uapi/xen/privcmd.h | 14 +++++++++++++-
2 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/arch/arm/include/asm/xen/interface.h b/arch/arm/include/asm/xen/interface.h
index 5006600..68a9d99 100644
--- a/arch/arm/include/asm/xen/interface.h
+++ b/arch/arm/include/asm/xen/interface.h
@@ -36,7 +36,7 @@
* fine since it simply wouldn't be able to create any sure pfns in
* the first place.
*/
-typedef uint64_t xen_pfn_t;
+typedef __u64 xen_pfn_t;
#define PRI_xen_pfn "llx"
typedef uint64_t xen_ulong_t;
#define PRI_xen_ulong "llx"
diff --git a/include/uapi/xen/privcmd.h b/include/uapi/xen/privcmd.h
index 7ddeeda..95b73a9 100644
--- a/include/uapi/xen/privcmd.h
+++ b/include/uapi/xen/privcmd.h
@@ -35,7 +35,19 @@
#include <linux/types.h>
#include <linux/compiler.h>
-#include <xen/interface/xen.h>
+
+/* Might be defined by Xen specific headers, but if not */
+#ifndef domid_t
+typedef __u16 domid_t;
+#endif /* domid_t */
+
+#ifndef xen_pfn_t
+#if (defined __ARMEL__ || defined __ARMEB__)
+typedef __u64 xen_pfn_t;
+#else
+typedef unsigned long xen_pfn_t;
+#endif /* (defined __ARMEL__ || defined __ARMEB__) */
+#endif /* xen_pfn_t */
struct privcmd_hypercall {
__u64 op;
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 75/79] include/uapi/xen/privcmd.h: fix compilation in userspace
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (74 preceding siblings ...)
2015-10-15 5:56 ` [PATCH v4 74/79] include/linux/xz.h: " Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` Mikko Rapeli
` (4 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel
Cc: Russell King, mikko.rapeli, Stefano Stabellini, David Vrabel,
linux-api, xen-devel, Boris Ostrovsky, linux-arm-kernel
xen/interface/xen.h is not exported from kernel headers so remove the
dependency and provide needed defines for domid_t and xen_pfn_t if they
are not already defined by some other e.g. Xen specific headers.
Suggested by Andrew Cooper <andrew.cooper3@citrix.com> on lkml message
<5569F9C9.8000607@citrix.com>.
The ifdef for ARM is ugly but did not find better solutions for it.
Fixes userspace compilation error:
xen/privcmd.h:38:31: fatal error: xen/interface/xen.h: No such file or directory
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
arch/arm/include/asm/xen/interface.h | 2 +-
include/uapi/xen/privcmd.h | 14 +++++++++++++-
2 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/arch/arm/include/asm/xen/interface.h b/arch/arm/include/asm/xen/interface.h
index 5006600..68a9d99 100644
--- a/arch/arm/include/asm/xen/interface.h
+++ b/arch/arm/include/asm/xen/interface.h
@@ -36,7 +36,7 @@
* fine since it simply wouldn't be able to create any sure pfns in
* the first place.
*/
-typedef uint64_t xen_pfn_t;
+typedef __u64 xen_pfn_t;
#define PRI_xen_pfn "llx"
typedef uint64_t xen_ulong_t;
#define PRI_xen_ulong "llx"
diff --git a/include/uapi/xen/privcmd.h b/include/uapi/xen/privcmd.h
index 7ddeeda..95b73a9 100644
--- a/include/uapi/xen/privcmd.h
+++ b/include/uapi/xen/privcmd.h
@@ -35,7 +35,19 @@
#include <linux/types.h>
#include <linux/compiler.h>
-#include <xen/interface/xen.h>
+
+/* Might be defined by Xen specific headers, but if not */
+#ifndef domid_t
+typedef __u16 domid_t;
+#endif /* domid_t */
+
+#ifndef xen_pfn_t
+#if (defined __ARMEL__ || defined __ARMEB__)
+typedef __u64 xen_pfn_t;
+#else
+typedef unsigned long xen_pfn_t;
+#endif /* (defined __ARMEL__ || defined __ARMEB__) */
+#endif /* xen_pfn_t */
struct privcmd_hypercall {
__u64 op;
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 76/79] coda_psdev.h: move upc_req definition from uapi to kernel side headers
@ 2015-10-15 5:56 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, Jan Harkes, coda, codalist, linux-api
Only users of upc_req in kernel side fs/coda/psdev.c and fs/coda/upcall.c
already include linux/coda_psdev.h.
Suggested by Jan Harkes <jaharkes@cs.cmu.edu> on lkml message
<20150531111913.GA23377@cs.cmu.edu>.
Fixes these include/uapi/linux/coda_psdev.h compilation errors in userspace:
./linux/coda_psdev.h:12:19: error: field ‘uc_chain’ has incomplete type
struct list_head uc_chain;
^
./linux/coda_psdev.h:13:2: error: unknown type name ‘caddr_t’
caddr_t uc_data;
^
./linux/coda_psdev.h:14:2: error: unknown type name ‘u_short’
u_short uc_flags;
^
./linux/coda_psdev.h:15:2: error: unknown type name ‘u_short’
u_short uc_inSize; /* Size is at most 5000 bytes */
^
./linux/coda_psdev.h:16:2: error: unknown type name ‘u_short’
u_short uc_outSize;
^
./linux/coda_psdev.h:17:2: error: unknown type name ‘u_short’
u_short uc_opcode; /* copied from data to save lookup */
^
./linux/coda_psdev.h:19:2: error: unknown type name ‘wait_queue_head_t’
wait_queue_head_t uc_sleep; /* process' wait queue */
^
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/linux/coda_psdev.h | 11 +++++++++++
include/uapi/linux/coda_psdev.h | 13 -------------
2 files changed, 11 insertions(+), 13 deletions(-)
diff --git a/include/linux/coda_psdev.h b/include/linux/coda_psdev.h
index 5b8721e..b3c0830 100644
--- a/include/linux/coda_psdev.h
+++ b/include/linux/coda_psdev.h
@@ -19,6 +19,17 @@ struct venus_comm {
struct mutex vc_mutex;
};
+/* messages between coda filesystem in kernel and Venus */
+struct upc_req {
+ struct list_head uc_chain;
+ caddr_t uc_data;
+ u_short uc_flags;
+ u_short uc_inSize; /* Size is at most 5000 bytes */
+ u_short uc_outSize;
+ u_short uc_opcode; /* copied from data to save lookup */
+ int uc_unique;
+ wait_queue_head_t uc_sleep; /* process' wait queue */
+};
static inline struct venus_comm *coda_vcp(struct super_block *sb)
{
diff --git a/include/uapi/linux/coda_psdev.h b/include/uapi/linux/coda_psdev.h
index 79d0598..e2c44d2 100644
--- a/include/uapi/linux/coda_psdev.h
+++ b/include/uapi/linux/coda_psdev.h
@@ -6,19 +6,6 @@
#define CODA_PSDEV_MAJOR 67
#define MAX_CODADEVS 5 /* how many do we allow */
-
-/* messages between coda filesystem in kernel and Venus */
-struct upc_req {
- struct list_head uc_chain;
- caddr_t uc_data;
- u_short uc_flags;
- u_short uc_inSize; /* Size is at most 5000 bytes */
- u_short uc_outSize;
- u_short uc_opcode; /* copied from data to save lookup */
- int uc_unique;
- wait_queue_head_t uc_sleep; /* process' wait queue */
-};
-
#define CODA_REQ_ASYNC 0x1
#define CODA_REQ_READ 0x2
#define CODA_REQ_WRITE 0x4
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 76/79] coda_psdev.h: move upc_req definition from uapi to kernel side headers
@ 2015-10-15 5:56 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel-u79uwXL29TY76Z2rM5mHXA
Cc: mikko.rapeli-X3B1VOXEql0, Jan Harkes,
coda-ETDLCGt7PQU3uPMLIKxrzw, codalist-/uMB558Y47wP4a1z8dhFYw,
linux-api-u79uwXL29TY76Z2rM5mHXA
Only users of upc_req in kernel side fs/coda/psdev.c and fs/coda/upcall.c
already include linux/coda_psdev.h.
Suggested by Jan Harkes <jaharkes-ETDLCGt7PQU3uPMLIKxrzw@public.gmane.org> on lkml message
<20150531111913.GA23377-ETDLCGt7PQU3uPMLIKxrzw@public.gmane.org>.
Fixes these include/uapi/linux/coda_psdev.h compilation errors in userspace:
./linux/coda_psdev.h:12:19: error: field ‘uc_chain’ has incomplete type
struct list_head uc_chain;
^
./linux/coda_psdev.h:13:2: error: unknown type name ‘caddr_t’
caddr_t uc_data;
^
./linux/coda_psdev.h:14:2: error: unknown type name ‘u_short’
u_short uc_flags;
^
./linux/coda_psdev.h:15:2: error: unknown type name ‘u_short’
u_short uc_inSize; /* Size is at most 5000 bytes */
^
./linux/coda_psdev.h:16:2: error: unknown type name ‘u_short’
u_short uc_outSize;
^
./linux/coda_psdev.h:17:2: error: unknown type name ‘u_short’
u_short uc_opcode; /* copied from data to save lookup */
^
./linux/coda_psdev.h:19:2: error: unknown type name ‘wait_queue_head_t’
wait_queue_head_t uc_sleep; /* process' wait queue */
^
Signed-off-by: Mikko Rapeli <mikko.rapeli-X3B1VOXEql0@public.gmane.org>
---
include/linux/coda_psdev.h | 11 +++++++++++
include/uapi/linux/coda_psdev.h | 13 -------------
2 files changed, 11 insertions(+), 13 deletions(-)
diff --git a/include/linux/coda_psdev.h b/include/linux/coda_psdev.h
index 5b8721e..b3c0830 100644
--- a/include/linux/coda_psdev.h
+++ b/include/linux/coda_psdev.h
@@ -19,6 +19,17 @@ struct venus_comm {
struct mutex vc_mutex;
};
+/* messages between coda filesystem in kernel and Venus */
+struct upc_req {
+ struct list_head uc_chain;
+ caddr_t uc_data;
+ u_short uc_flags;
+ u_short uc_inSize; /* Size is at most 5000 bytes */
+ u_short uc_outSize;
+ u_short uc_opcode; /* copied from data to save lookup */
+ int uc_unique;
+ wait_queue_head_t uc_sleep; /* process' wait queue */
+};
static inline struct venus_comm *coda_vcp(struct super_block *sb)
{
diff --git a/include/uapi/linux/coda_psdev.h b/include/uapi/linux/coda_psdev.h
index 79d0598..e2c44d2 100644
--- a/include/uapi/linux/coda_psdev.h
+++ b/include/uapi/linux/coda_psdev.h
@@ -6,19 +6,6 @@
#define CODA_PSDEV_MAJOR 67
#define MAX_CODADEVS 5 /* how many do we allow */
-
-/* messages between coda filesystem in kernel and Venus */
-struct upc_req {
- struct list_head uc_chain;
- caddr_t uc_data;
- u_short uc_flags;
- u_short uc_inSize; /* Size is at most 5000 bytes */
- u_short uc_outSize;
- u_short uc_opcode; /* copied from data to save lookup */
- int uc_unique;
- wait_queue_head_t uc_sleep; /* process' wait queue */
-};
-
#define CODA_REQ_ASYNC 0x1
#define CODA_REQ_READ 0x2
#define CODA_REQ_WRITE 0x4
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 77/79] include/uapi/linux/elfcore.h: remove non-compiling userspace parts
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (77 preceding siblings ...)
2015-10-15 5:56 ` Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 78/79] include/uapi/linux/errqueue.h: include time.h in userspace Mikko Rapeli
2015-10-15 5:56 ` Mikko Rapeli
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, linux-api
Remove typedef elf_greg_t greg_t and friends from userspace.
Remove struct elf_prstatus completely from userspace.
elfcore.h as such does not compile in userspace. All userspace users
of <linux/elfcore.h> like gcc/gdb and linux-tools contain their own modified
versions of the file. With these changes the file compiles but is generally
not usable for things like core dump parsing but luckily userspace users
already know this and have their own modified version of the needed
definitions and headers. But at least this compiles now.
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/elfcore.h | 21 +++++++--------------
1 file changed, 7 insertions(+), 14 deletions(-)
diff --git a/include/uapi/linux/elfcore.h b/include/uapi/linux/elfcore.h
index 569737c..6c23066 100644
--- a/include/uapi/linux/elfcore.h
+++ b/include/uapi/linux/elfcore.h
@@ -15,15 +15,7 @@ struct elf_siginfo
int si_errno; /* errno */
};
-
-#ifndef __KERNEL__
-typedef elf_greg_t greg_t;
-typedef elf_gregset_t gregset_t;
-typedef elf_fpregset_t fpregset_t;
-typedef elf_fpxregset_t fpxregset_t;
-#define NGREG ELF_NGREG
-#endif
-
+#ifdef __KERNEL__
/*
* Definitions to generate Intel SVR4-like core files.
* These mostly have the same names as the SVR4 types with "elf_"
@@ -48,10 +40,10 @@ struct elf_prstatus
struct sigaltstack pr_altstack; /* Alternate stack info */
struct sigaction pr_action; /* Signal action for current sig */
#endif
- pid_t pr_pid;
- pid_t pr_ppid;
- pid_t pr_pgrp;
- pid_t pr_sid;
+ __kernel_pid_t pr_pid;
+ __kernel_pid_t pr_ppid;
+ __kernel_pid_t pr_pgrp;
+ __kernel_pid_t pr_sid;
struct timeval pr_utime; /* User time */
struct timeval pr_stime; /* System time */
struct timeval pr_cutime; /* Cumulative user time */
@@ -72,6 +64,7 @@ struct elf_prstatus
#endif
int pr_fpvalid; /* True if math co-processor being used. */
};
+#endif /* __KERNEL__ */
#define ELF_PRARGSZ (80) /* Number of chars for args */
@@ -84,7 +77,7 @@ struct elf_prpsinfo
unsigned long pr_flag; /* flags */
__kernel_uid_t pr_uid;
__kernel_gid_t pr_gid;
- pid_t pr_pid, pr_ppid, pr_pgrp, pr_sid;
+ __kernel_pid_t pr_pid, pr_ppid, pr_pgrp, pr_sid;
/* Lots missing */
char pr_fname[16]; /* filename of executable */
char pr_psargs[ELF_PRARGSZ]; /* initial part of arg list */
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 78/79] include/uapi/linux/errqueue.h: include time.h in userspace
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (78 preceding siblings ...)
2015-10-15 5:56 ` [PATCH v4 77/79] include/uapi/linux/elfcore.h: remove non-compiling userspace parts Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` Mikko Rapeli
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, linux-api
linux/time.h conflicts with userspace header time.h. Try to be compatible
for kernel and userspace.
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/errqueue.h | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/include/uapi/linux/errqueue.h b/include/uapi/linux/errqueue.h
index 6b1cdc6..b310b2c 100644
--- a/include/uapi/linux/errqueue.h
+++ b/include/uapi/linux/errqueue.h
@@ -2,7 +2,12 @@
#define _UAPI_LINUX_ERRQUEUE_H
#include <linux/types.h>
+
+#ifdef __KERNEL__
#include <linux/time.h>
+#else
+#include <time.h>
+#endif /* __KERNEL__ */
struct sock_extended_err {
__u32 ee_errno;
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 79/79] arch/arm/include/uapi/asm/signal.h: use __kernel_size_t instead of size_t
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
@ 2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:55 ` [PATCH v4 02/79] scripts/headers_compile_test.sh: compile test script for exported headers Mikko Rapeli
` (79 subsequent siblings)
80 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-kernel; +Cc: mikko.rapeli, Russell King, linux-arm-kernel
Fixes uapi header compilation error from userspace on ARCH=arm:
asm/signal.h:112:2: error: unknown type name ‘size_t’
size_t ss_size;
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
arch/arm/include/uapi/asm/signal.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/include/uapi/asm/signal.h b/arch/arm/include/uapi/asm/signal.h
index 33073bd..859f2de 100644
--- a/arch/arm/include/uapi/asm/signal.h
+++ b/arch/arm/include/uapi/asm/signal.h
@@ -113,7 +113,7 @@ struct sigaction {
typedef struct sigaltstack {
void __user *ss_sp;
int ss_flags;
- size_t ss_size;
+ __kernel_size_t ss_size;
} stack_t;
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH v4 79/79] arch/arm/include/uapi/asm/signal.h: use __kernel_size_t instead of size_t
@ 2015-10-15 5:56 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 5:56 UTC (permalink / raw)
To: linux-arm-kernel
Fixes uapi header compilation error from userspace on ARCH=arm:
asm/signal.h:112:2: error: unknown type name ?size_t?
size_t ss_size;
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
arch/arm/include/uapi/asm/signal.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/include/uapi/asm/signal.h b/arch/arm/include/uapi/asm/signal.h
index 33073bd..859f2de 100644
--- a/arch/arm/include/uapi/asm/signal.h
+++ b/arch/arm/include/uapi/asm/signal.h
@@ -113,7 +113,7 @@ struct sigaction {
typedef struct sigaltstack {
void __user *ss_sp;
int ss_flags;
- size_t ss_size;
+ __kernel_size_t ss_size;
} stack_t;
--
2.5.0
^ permalink raw reply related [flat|nested] 206+ messages in thread
* Re: [PATCH v4 11/79] savage_drm.h: include <drm/drm.h>
@ 2015-10-15 6:44 ` Daniel Vetter
0 siblings, 0 replies; 206+ messages in thread
From: Daniel Vetter @ 2015-10-15 6:44 UTC (permalink / raw)
To: Mikko Rapeli; +Cc: linux-kernel, dri-devel, linux-api
On Thu, Oct 15, 2015 at 07:55:49AM +0200, Mikko Rapeli wrote:
> Fixes compiler error:
>
> drm/savage_drm.h:50:24: error: array type has incomplete element type
> struct drm_tex_region texList[SAVAGE_NR_TEX_HEAPS][SAVAGE_NR_TEX_REGIONS +
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
Queued for -next, thanks for the patch.
-Daniel
> ---
> include/uapi/drm/savage_drm.h | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/include/uapi/drm/savage_drm.h b/include/uapi/drm/savage_drm.h
> index 818d49b..9dc9dc1 100644
> --- a/include/uapi/drm/savage_drm.h
> +++ b/include/uapi/drm/savage_drm.h
> @@ -26,6 +26,8 @@
> #ifndef __SAVAGE_DRM_H__
> #define __SAVAGE_DRM_H__
>
> +#include <drm/drm.h>
> +
> #ifndef __SAVAGE_SAREA_DEFINES__
> #define __SAVAGE_SAREA_DEFINES__
>
> --
> 2.5.0
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 11/79] savage_drm.h: include <drm/drm.h>
@ 2015-10-15 6:44 ` Daniel Vetter
0 siblings, 0 replies; 206+ messages in thread
From: Daniel Vetter @ 2015-10-15 6:44 UTC (permalink / raw)
To: Mikko Rapeli
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA,
dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
linux-api-u79uwXL29TY76Z2rM5mHXA
On Thu, Oct 15, 2015 at 07:55:49AM +0200, Mikko Rapeli wrote:
> Fixes compiler error:
>
> drm/savage_drm.h:50:24: error: array type has incomplete element type
> struct drm_tex_region texList[SAVAGE_NR_TEX_HEAPS][SAVAGE_NR_TEX_REGIONS +
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli-X3B1VOXEql0@public.gmane.org>
Queued for -next, thanks for the patch.
-Daniel
> ---
> include/uapi/drm/savage_drm.h | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/include/uapi/drm/savage_drm.h b/include/uapi/drm/savage_drm.h
> index 818d49b..9dc9dc1 100644
> --- a/include/uapi/drm/savage_drm.h
> +++ b/include/uapi/drm/savage_drm.h
> @@ -26,6 +26,8 @@
> #ifndef __SAVAGE_DRM_H__
> #define __SAVAGE_DRM_H__
>
> +#include <drm/drm.h>
> +
> #ifndef __SAVAGE_SAREA_DEFINES__
> #define __SAVAGE_SAREA_DEFINES__
>
> --
> 2.5.0
>
> _______________________________________________
> dri-devel mailing list
> dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 02/79] scripts/headers_compile_test.sh: compile test script for exported headers
2015-10-15 5:55 ` [PATCH v4 02/79] scripts/headers_compile_test.sh: compile test script for exported headers Mikko Rapeli
@ 2015-10-15 7:17 ` Alexander Stein
2015-10-15 7:29 ` Mikko Rapeli
2015-11-10 15:03 ` Gabriel Laskar
0 siblings, 2 replies; 206+ messages in thread
From: Alexander Stein @ 2015-10-15 7:17 UTC (permalink / raw)
To: Mikko Rapeli; +Cc: linux-kernel
Hi Mikko,
On Thursday 15 October 2015 07:55:40, Mikko Rapeli wrote:
> Users of kernel header files would be happier if they did not contain
> kernel specific parts and would contain #include statements for all
> other header files that they depend on, and in general would compile.
>
> For each header file exported to userspace, this script creates
> a simple .c file which just includes the header file. Then it
> tries to compile it together with minimal header files from GCC
> and libc, and reports results.
Just an idea: Why not try to create a pre-compiled header (pch) instead. So you can get rid of creating temporary .c files for each header.
Best regards,
Alexander
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 02/79] scripts/headers_compile_test.sh: compile test script for exported headers
2015-10-15 7:17 ` Alexander Stein
@ 2015-10-15 7:29 ` Mikko Rapeli
2015-11-10 15:03 ` Gabriel Laskar
1 sibling, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 7:29 UTC (permalink / raw)
To: Alexander Stein; +Cc: linux-kernel
On Thu, Oct 15, 2015 at 09:17:18AM +0200, Alexander Stein wrote:
> Hi Mikko,
>
> On Thursday 15 October 2015 07:55:40, Mikko Rapeli wrote:
> > Users of kernel header files would be happier if they did not contain
> > kernel specific parts and would contain #include statements for all
> > other header files that they depend on, and in general would compile.
> >
> > For each header file exported to userspace, this script creates
> > a simple .c file which just includes the header file. Then it
> > tries to compile it together with minimal header files from GCC
> > and libc, and reports results.
>
> Just an idea: Why not try to create a pre-compiled header (pch) instead. So you can get rid of creating temporary .c files for each header.
Good idea. I'll explore this too. Currently the scripts abuse the
headers_install target directory and leave cruft like these .c files and
the hacked up libc headers around. I was planning to clean these up when
actual headers are clean of compiler errors and when integrating
this compile check to 'make headers_check'.
-Mikko
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 08/79] r128_drm.h: include drm/drm.h
2015-10-15 5:55 ` [PATCH v4 08/79] r128_drm.h: include drm/drm.h Mikko Rapeli
@ 2015-10-15 7:43 ` Daniel Vetter
0 siblings, 0 replies; 206+ messages in thread
From: Daniel Vetter @ 2015-10-15 7:43 UTC (permalink / raw)
To: Mikko Rapeli; +Cc: linux-kernel, dri-devel, linux-api
On Thu, Oct 15, 2015 at 07:55:46AM +0200, Mikko Rapeli wrote:
> Fixes compile error:
>
> drm/r128_drm.h:156:23: error: array type has incomplete element type
> struct drm_clip_rect boxes[R128_NR_SAREA_CLIPRECTS];
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
Applied to drm-misc, thanks.
-Daniel
> ---
> include/uapi/drm/r128_drm.h | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/include/uapi/drm/r128_drm.h b/include/uapi/drm/r128_drm.h
> index 8d8878b..76b0aa3 100644
> --- a/include/uapi/drm/r128_drm.h
> +++ b/include/uapi/drm/r128_drm.h
> @@ -33,6 +33,8 @@
> #ifndef __R128_DRM_H__
> #define __R128_DRM_H__
>
> +#include <drm/drm.h>
> +
> /* WARNING: If you change any of these defines, make sure to change the
> * defines in the X server file (r128_sarea.h)
> */
> --
> 2.5.0
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 08/79] r128_drm.h: include drm/drm.h
@ 2015-10-15 7:43 ` Daniel Vetter
0 siblings, 0 replies; 206+ messages in thread
From: Daniel Vetter @ 2015-10-15 7:43 UTC (permalink / raw)
To: Mikko Rapeli; +Cc: linux-api, linux-kernel, dri-devel
On Thu, Oct 15, 2015 at 07:55:46AM +0200, Mikko Rapeli wrote:
> Fixes compile error:
>
> drm/r128_drm.h:156:23: error: array type has incomplete element type
> struct drm_clip_rect boxes[R128_NR_SAREA_CLIPRECTS];
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
Applied to drm-misc, thanks.
-Daniel
> ---
> include/uapi/drm/r128_drm.h | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/include/uapi/drm/r128_drm.h b/include/uapi/drm/r128_drm.h
> index 8d8878b..76b0aa3 100644
> --- a/include/uapi/drm/r128_drm.h
> +++ b/include/uapi/drm/r128_drm.h
> @@ -33,6 +33,8 @@
> #ifndef __R128_DRM_H__
> #define __R128_DRM_H__
>
> +#include <drm/drm.h>
> +
> /* WARNING: If you change any of these defines, make sure to change the
> * defines in the X server file (r128_sarea.h)
> */
> --
> 2.5.0
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 13/79] drm/i810_drm.h: include drm/drm.h
@ 2015-10-15 7:44 ` Daniel Vetter
0 siblings, 0 replies; 206+ messages in thread
From: Daniel Vetter @ 2015-10-15 7:44 UTC (permalink / raw)
To: Mikko Rapeli; +Cc: linux-kernel, dri-devel, linux-api
On Thu, Oct 15, 2015 at 07:55:51AM +0200, Mikko Rapeli wrote:
> Fixes userspace compilation error:
>
> error: array type has incomplete element type
> struct drm_clip_rect boxes[I810_NR_SAREA_CLIPRECTS];
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
Applied to drm-misc, thanks.
-Daniel
> ---
> include/uapi/drm/i810_drm.h | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/include/uapi/drm/i810_drm.h b/include/uapi/drm/i810_drm.h
> index 7a10bb6..34736ef 100644
> --- a/include/uapi/drm/i810_drm.h
> +++ b/include/uapi/drm/i810_drm.h
> @@ -1,6 +1,8 @@
> #ifndef _I810_DRM_H_
> #define _I810_DRM_H_
>
> +#include <drm/drm.h>
> +
> /* WARNING: These defines must be the same as what the Xserver uses.
> * if you change them, you must change the defines in the Xserver.
> */
> --
> 2.5.0
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 13/79] drm/i810_drm.h: include drm/drm.h
@ 2015-10-15 7:44 ` Daniel Vetter
0 siblings, 0 replies; 206+ messages in thread
From: Daniel Vetter @ 2015-10-15 7:44 UTC (permalink / raw)
To: Mikko Rapeli
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA,
dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
linux-api-u79uwXL29TY76Z2rM5mHXA
On Thu, Oct 15, 2015 at 07:55:51AM +0200, Mikko Rapeli wrote:
> Fixes userspace compilation error:
>
> error: array type has incomplete element type
> struct drm_clip_rect boxes[I810_NR_SAREA_CLIPRECTS];
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli-X3B1VOXEql0@public.gmane.org>
Applied to drm-misc, thanks.
-Daniel
> ---
> include/uapi/drm/i810_drm.h | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/include/uapi/drm/i810_drm.h b/include/uapi/drm/i810_drm.h
> index 7a10bb6..34736ef 100644
> --- a/include/uapi/drm/i810_drm.h
> +++ b/include/uapi/drm/i810_drm.h
> @@ -1,6 +1,8 @@
> #ifndef _I810_DRM_H_
> #define _I810_DRM_H_
>
> +#include <drm/drm.h>
> +
> /* WARNING: These defines must be the same as what the Xserver uses.
> * if you change them, you must change the defines in the Xserver.
> */
> --
> 2.5.0
>
> _______________________________________________
> dri-devel mailing list
> dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 17/79] include/uapi/sound/emu10k1.h: added EMU10K1 version of DECLARE_BITMAP macro
2015-10-15 5:55 ` Mikko Rapeli
@ 2015-10-15 8:04 ` Takashi Iwai
-1 siblings, 0 replies; 206+ messages in thread
From: Takashi Iwai @ 2015-10-15 8:04 UTC (permalink / raw)
To: Mikko Rapeli; +Cc: linux-kernel, alsa-devel, Jaroslav Kysela, linux-api
On Thu, 15 Oct 2015 07:55:55 +0200,
Mikko Rapeli wrote:
>
> Fixes userspace compilation error:
>
> error: expected specifier-qualifier-list before ‘DECLARE_BITMAP’
> DECLARE_BITMAP(gpr_valid, 0x200); /* bitmask of valid initializers */
>
> DECLARE_BITMAP macro is not meant for userspace headers and thus
> added here as private copy for emu10k.h.
>
> Fix was suggested by Arnd Bergmann <arnd@arndb.de> in message
> <2168807.4Yxh5gl11Q@wuerfel> and Takashi Iwai <tiwai@suse.de>
> in message <s5h1thx88tk.wl-tiwai@suse.de> on lkml.
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
Applied, thanks.
Takashi
> ---
> include/uapi/sound/emu10k1.h | 14 +++++++++++---
> 1 file changed, 11 insertions(+), 3 deletions(-)
>
> diff --git a/include/uapi/sound/emu10k1.h b/include/uapi/sound/emu10k1.h
> index ec1535b..5175e16 100644
> --- a/include/uapi/sound/emu10k1.h
> +++ b/include/uapi/sound/emu10k1.h
> @@ -34,6 +34,14 @@
>
> #define EMU10K1_FX8010_PCM_COUNT 8
>
> +/*
> + * Following definition is copied from linux/types.h to support compiling
> + * this header file in userspace since they are not generally available for
> + * uapi headers.
> + */
> +#define __EMU10K1_DECLARE_BITMAP(name,bits) \
> + unsigned long name[(bits) / (sizeof(unsigned long) * 8)]
> +
> /* instruction set */
> #define iMAC0 0x00 /* R = A + (X * Y >> 31) ; saturation */
> #define iMAC1 0x01 /* R = A + (-X * Y >> 31) ; saturation */
> @@ -300,7 +308,7 @@ struct snd_emu10k1_fx8010_control_old_gpr {
> struct snd_emu10k1_fx8010_code {
> char name[128];
>
> - DECLARE_BITMAP(gpr_valid, 0x200); /* bitmask of valid initializers */
> + __EMU10K1_DECLARE_BITMAP(gpr_valid, 0x200); /* bitmask of valid initializers */
> __u32 __user *gpr_map; /* initializers */
>
> unsigned int gpr_add_control_count; /* count of GPR controls to add/replace */
> @@ -313,11 +321,11 @@ struct snd_emu10k1_fx8010_code {
> unsigned int gpr_list_control_total; /* total count of GPR controls */
> struct snd_emu10k1_fx8010_control_gpr __user *gpr_list_controls; /* listed GPR controls */
>
> - DECLARE_BITMAP(tram_valid, 0x100); /* bitmask of valid initializers */
> + __EMU10K1_DECLARE_BITMAP(tram_valid, 0x100); /* bitmask of valid initializers */
> __u32 __user *tram_data_map; /* data initializers */
> __u32 __user *tram_addr_map; /* map initializers */
>
> - DECLARE_BITMAP(code_valid, 1024); /* bitmask of valid instructions */
> + __EMU10K1_DECLARE_BITMAP(code_valid, 1024); /* bitmask of valid instructions */
> __u32 __user *code; /* one instruction - 64 bits */
> };
>
> --
> 2.5.0
>
>
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 17/79] include/uapi/sound/emu10k1.h: added EMU10K1 version of DECLARE_BITMAP macro
@ 2015-10-15 8:04 ` Takashi Iwai
0 siblings, 0 replies; 206+ messages in thread
From: Takashi Iwai @ 2015-10-15 8:04 UTC (permalink / raw)
To: Mikko Rapeli; +Cc: linux-kernel, alsa-devel, Jaroslav Kysela, linux-api
On Thu, 15 Oct 2015 07:55:55 +0200,
Mikko Rapeli wrote:
>
> Fixes userspace compilation error:
>
> error: expected specifier-qualifier-list before ‘DECLARE_BITMAP’
> DECLARE_BITMAP(gpr_valid, 0x200); /* bitmask of valid initializers */
>
> DECLARE_BITMAP macro is not meant for userspace headers and thus
> added here as private copy for emu10k.h.
>
> Fix was suggested by Arnd Bergmann <arnd@arndb.de> in message
> <2168807.4Yxh5gl11Q@wuerfel> and Takashi Iwai <tiwai@suse.de>
> in message <s5h1thx88tk.wl-tiwai@suse.de> on lkml.
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
Applied, thanks.
Takashi
> ---
> include/uapi/sound/emu10k1.h | 14 +++++++++++---
> 1 file changed, 11 insertions(+), 3 deletions(-)
>
> diff --git a/include/uapi/sound/emu10k1.h b/include/uapi/sound/emu10k1.h
> index ec1535b..5175e16 100644
> --- a/include/uapi/sound/emu10k1.h
> +++ b/include/uapi/sound/emu10k1.h
> @@ -34,6 +34,14 @@
>
> #define EMU10K1_FX8010_PCM_COUNT 8
>
> +/*
> + * Following definition is copied from linux/types.h to support compiling
> + * this header file in userspace since they are not generally available for
> + * uapi headers.
> + */
> +#define __EMU10K1_DECLARE_BITMAP(name,bits) \
> + unsigned long name[(bits) / (sizeof(unsigned long) * 8)]
> +
> /* instruction set */
> #define iMAC0 0x00 /* R = A + (X * Y >> 31) ; saturation */
> #define iMAC1 0x01 /* R = A + (-X * Y >> 31) ; saturation */
> @@ -300,7 +308,7 @@ struct snd_emu10k1_fx8010_control_old_gpr {
> struct snd_emu10k1_fx8010_code {
> char name[128];
>
> - DECLARE_BITMAP(gpr_valid, 0x200); /* bitmask of valid initializers */
> + __EMU10K1_DECLARE_BITMAP(gpr_valid, 0x200); /* bitmask of valid initializers */
> __u32 __user *gpr_map; /* initializers */
>
> unsigned int gpr_add_control_count; /* count of GPR controls to add/replace */
> @@ -313,11 +321,11 @@ struct snd_emu10k1_fx8010_code {
> unsigned int gpr_list_control_total; /* total count of GPR controls */
> struct snd_emu10k1_fx8010_control_gpr __user *gpr_list_controls; /* listed GPR controls */
>
> - DECLARE_BITMAP(tram_valid, 0x100); /* bitmask of valid initializers */
> + __EMU10K1_DECLARE_BITMAP(tram_valid, 0x100); /* bitmask of valid initializers */
> __u32 __user *tram_data_map; /* data initializers */
> __u32 __user *tram_addr_map; /* map initializers */
>
> - DECLARE_BITMAP(code_valid, 1024); /* bitmask of valid instructions */
> + __EMU10K1_DECLARE_BITMAP(code_valid, 1024); /* bitmask of valid instructions */
> __u32 __user *code; /* one instruction - 64 bits */
> };
>
> --
> 2.5.0
>
>
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 28/79] hdspm.h: use __u8, __u32 and __u64 from linux/types.h instead of stdint.h
2015-10-15 5:56 ` Mikko Rapeli
@ 2015-10-15 8:04 ` Takashi Iwai
-1 siblings, 0 replies; 206+ messages in thread
From: Takashi Iwai @ 2015-10-15 8:04 UTC (permalink / raw)
To: Mikko Rapeli; +Cc: linux-kernel, alsa-devel, Jaroslav Kysela, linux-api
On Thu, 15 Oct 2015 07:56:06 +0200,
Mikko Rapeli wrote:
>
> Kernel headers should use linux/types.h based definitions.
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
Applied, thanks.
Takashi
> ---
> include/uapi/sound/hdspm.h | 40 ++++++++++++++++++----------------------
> 1 file changed, 18 insertions(+), 22 deletions(-)
>
> diff --git a/include/uapi/sound/hdspm.h b/include/uapi/sound/hdspm.h
> index 5737332..c4db6f5 100644
> --- a/include/uapi/sound/hdspm.h
> +++ b/include/uapi/sound/hdspm.h
> @@ -20,11 +20,7 @@
> * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
> */
>
> -#ifdef __KERNEL__
> #include <linux/types.h>
> -#else
> -#include <stdint.h>
> -#endif
>
> /* Maximum channels is 64 even on 56Mode you have 64playbacks to matrix */
> #define HDSPM_MAX_CHANNELS 64
> @@ -46,15 +42,15 @@ enum hdspm_speed {
> /* -------------------- IOCTL Peak/RMS Meters -------------------- */
>
> struct hdspm_peak_rms {
> - uint32_t input_peaks[64];
> - uint32_t playback_peaks[64];
> - uint32_t output_peaks[64];
> + __u32 input_peaks[64];
> + __u32 playback_peaks[64];
> + __u32 output_peaks[64];
>
> - uint64_t input_rms[64];
> - uint64_t playback_rms[64];
> - uint64_t output_rms[64];
> + __u64 input_rms[64];
> + __u64 playback_rms[64];
> + __u64 output_rms[64];
>
> - uint8_t speed; /* enum {ss, ds, qs} */
> + __u8 speed; /* enum {ss, ds, qs} */
> int status2;
> };
>
> @@ -155,21 +151,21 @@ enum hdspm_syncsource {
> };
>
> struct hdspm_status {
> - uint8_t card_type; /* enum hdspm_io_type */
> + __u8 card_type; /* enum hdspm_io_type */
> enum hdspm_syncsource autosync_source;
>
> - uint64_t card_clock;
> - uint32_t master_period;
> + __u64 card_clock;
> + __u32 master_period;
>
> union {
> struct {
> - uint8_t sync_wc; /* enum hdspm_sync */
> - uint8_t sync_madi; /* enum hdspm_sync */
> - uint8_t sync_tco; /* enum hdspm_sync */
> - uint8_t sync_in; /* enum hdspm_sync */
> - uint8_t madi_input; /* enum hdspm_madi_input */
> - uint8_t channel_format; /* enum hdspm_madi_channel_format */
> - uint8_t frame_format; /* enum hdspm_madi_frame_format */
> + __u8 sync_wc; /* enum hdspm_sync */
> + __u8 sync_madi; /* enum hdspm_sync */
> + __u8 sync_tco; /* enum hdspm_sync */
> + __u8 sync_in; /* enum hdspm_sync */
> + __u8 madi_input; /* enum hdspm_madi_input */
> + __u8 channel_format; /* enum hdspm_madi_channel_format */
> + __u8 frame_format; /* enum hdspm_madi_frame_format */
> } madi;
> } card_specific;
> };
> @@ -184,7 +180,7 @@ struct hdspm_status {
> #define HDSPM_ADDON_TCO 1
>
> struct hdspm_version {
> - uint8_t card_type; /* enum hdspm_io_type */
> + __u8 card_type; /* enum hdspm_io_type */
> char cardname[20];
> unsigned int serial;
> unsigned short firmware_rev;
> --
> 2.5.0
>
>
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 28/79] hdspm.h: use __u8, __u32 and __u64 from linux/types.h instead of stdint.h
@ 2015-10-15 8:04 ` Takashi Iwai
0 siblings, 0 replies; 206+ messages in thread
From: Takashi Iwai @ 2015-10-15 8:04 UTC (permalink / raw)
To: Mikko Rapeli; +Cc: linux-kernel, alsa-devel, Jaroslav Kysela, linux-api
On Thu, 15 Oct 2015 07:56:06 +0200,
Mikko Rapeli wrote:
>
> Kernel headers should use linux/types.h based definitions.
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
Applied, thanks.
Takashi
> ---
> include/uapi/sound/hdspm.h | 40 ++++++++++++++++++----------------------
> 1 file changed, 18 insertions(+), 22 deletions(-)
>
> diff --git a/include/uapi/sound/hdspm.h b/include/uapi/sound/hdspm.h
> index 5737332..c4db6f5 100644
> --- a/include/uapi/sound/hdspm.h
> +++ b/include/uapi/sound/hdspm.h
> @@ -20,11 +20,7 @@
> * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
> */
>
> -#ifdef __KERNEL__
> #include <linux/types.h>
> -#else
> -#include <stdint.h>
> -#endif
>
> /* Maximum channels is 64 even on 56Mode you have 64playbacks to matrix */
> #define HDSPM_MAX_CHANNELS 64
> @@ -46,15 +42,15 @@ enum hdspm_speed {
> /* -------------------- IOCTL Peak/RMS Meters -------------------- */
>
> struct hdspm_peak_rms {
> - uint32_t input_peaks[64];
> - uint32_t playback_peaks[64];
> - uint32_t output_peaks[64];
> + __u32 input_peaks[64];
> + __u32 playback_peaks[64];
> + __u32 output_peaks[64];
>
> - uint64_t input_rms[64];
> - uint64_t playback_rms[64];
> - uint64_t output_rms[64];
> + __u64 input_rms[64];
> + __u64 playback_rms[64];
> + __u64 output_rms[64];
>
> - uint8_t speed; /* enum {ss, ds, qs} */
> + __u8 speed; /* enum {ss, ds, qs} */
> int status2;
> };
>
> @@ -155,21 +151,21 @@ enum hdspm_syncsource {
> };
>
> struct hdspm_status {
> - uint8_t card_type; /* enum hdspm_io_type */
> + __u8 card_type; /* enum hdspm_io_type */
> enum hdspm_syncsource autosync_source;
>
> - uint64_t card_clock;
> - uint32_t master_period;
> + __u64 card_clock;
> + __u32 master_period;
>
> union {
> struct {
> - uint8_t sync_wc; /* enum hdspm_sync */
> - uint8_t sync_madi; /* enum hdspm_sync */
> - uint8_t sync_tco; /* enum hdspm_sync */
> - uint8_t sync_in; /* enum hdspm_sync */
> - uint8_t madi_input; /* enum hdspm_madi_input */
> - uint8_t channel_format; /* enum hdspm_madi_channel_format */
> - uint8_t frame_format; /* enum hdspm_madi_frame_format */
> + __u8 sync_wc; /* enum hdspm_sync */
> + __u8 sync_madi; /* enum hdspm_sync */
> + __u8 sync_tco; /* enum hdspm_sync */
> + __u8 sync_in; /* enum hdspm_sync */
> + __u8 madi_input; /* enum hdspm_madi_input */
> + __u8 channel_format; /* enum hdspm_madi_channel_format */
> + __u8 frame_format; /* enum hdspm_madi_frame_format */
> } madi;
> } card_specific;
> };
> @@ -184,7 +180,7 @@ struct hdspm_status {
> #define HDSPM_ADDON_TCO 1
>
> struct hdspm_version {
> - uint8_t card_type; /* enum hdspm_io_type */
> + __u8 card_type; /* enum hdspm_io_type */
> char cardname[20];
> unsigned int serial;
> unsigned short firmware_rev;
> --
> 2.5.0
>
>
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 18/79] dm-log-userspace.h: use __u32, __s32 and __u64 from linux/types.h
@ 2015-10-15 8:09 ` Mike Snitzer
0 siblings, 0 replies; 206+ messages in thread
From: Mike Snitzer @ 2015-10-15 8:09 UTC (permalink / raw)
To: Mikko Rapeli; +Cc: linux-kernel, dm-devel, Alasdair Kergon, linux-api
On Thu, Oct 15 2015 at 1:55am -0400,
Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
> Fixes userspace compilation errors like:
>
> linux/dm-log-userspace.h:416:2: error: unknown type name ‘uint64_t’
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
As was already explained before, there is no need to compile this for
userspace consumption. Where is this requirement coming from?
If your 0th patch's header speaks to _why_ you keep requesting this
change then please cc me on it.
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 18/79] dm-log-userspace.h: use __u32, __s32 and __u64 from linux/types.h
@ 2015-10-15 8:09 ` Mike Snitzer
0 siblings, 0 replies; 206+ messages in thread
From: Mike Snitzer @ 2015-10-15 8:09 UTC (permalink / raw)
To: Mikko Rapeli
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA,
dm-devel-H+wXaHxf7aLQT0dZR+AlfA, Alasdair Kergon,
linux-api-u79uwXL29TY76Z2rM5mHXA
On Thu, Oct 15 2015 at 1:55am -0400,
Mikko Rapeli <mikko.rapeli-X3B1VOXEql0@public.gmane.org> wrote:
> Fixes userspace compilation errors like:
>
> linux/dm-log-userspace.h:416:2: error: unknown type name ‘uint64_t’
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli-X3B1VOXEql0@public.gmane.org>
As was already explained before, there is no need to compile this for
userspace consumption. Where is this requirement coming from?
If your 0th patch's header speaks to _why_ you keep requesting this
change then please cc me on it.
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 45/79] linux/if.h linux/hdlc/ioctl.h: move IFNAMSIZ definition to hdlc/ioctl.h
@ 2015-10-15 8:49 ` Frans Klaver
0 siblings, 0 replies; 206+ messages in thread
From: Frans Klaver @ 2015-10-15 8:49 UTC (permalink / raw)
To: Mikko Rapeli; +Cc: linux-kernel, linux-api
Hi,
On Thu, Oct 15, 2015 at 7:56 AM, Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
> And include linux/hdlc/ioctl.h from linux/if.h.
That appears to have already been the case before this patch. You just
add a comment behind the include statement.
> diff --git a/include/uapi/linux/if.h b/include/uapi/linux/if.h
> index 9cf2394..0f98f0a 100644
> --- a/include/uapi/linux/if.h
> +++ b/include/uapi/linux/if.h
> @@ -22,10 +22,8 @@
> #include <linux/types.h> /* for "__kernel_caddr_t" et al */
> #include <linux/socket.h> /* for "struct sockaddr" et al */
> #include <linux/compiler.h> /* for "__user" et al */
> -
> -#define IFNAMSIZ 16
> -#define IFALIASZ 256
> -#include <linux/hdlc/ioctl.h>
> +#include <linux/hdlc/ioctl.h> /* for IFNAMSIZ */
> +#define IFALIASZ 256
Thanks,
Frans
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 45/79] linux/if.h linux/hdlc/ioctl.h: move IFNAMSIZ definition to hdlc/ioctl.h
@ 2015-10-15 8:49 ` Frans Klaver
0 siblings, 0 replies; 206+ messages in thread
From: Frans Klaver @ 2015-10-15 8:49 UTC (permalink / raw)
To: Mikko Rapeli; +Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-api
Hi,
On Thu, Oct 15, 2015 at 7:56 AM, Mikko Rapeli <mikko.rapeli-X3B1VOXEql0@public.gmane.org> wrote:
> And include linux/hdlc/ioctl.h from linux/if.h.
That appears to have already been the case before this patch. You just
add a comment behind the include statement.
> diff --git a/include/uapi/linux/if.h b/include/uapi/linux/if.h
> index 9cf2394..0f98f0a 100644
> --- a/include/uapi/linux/if.h
> +++ b/include/uapi/linux/if.h
> @@ -22,10 +22,8 @@
> #include <linux/types.h> /* for "__kernel_caddr_t" et al */
> #include <linux/socket.h> /* for "struct sockaddr" et al */
> #include <linux/compiler.h> /* for "__user" et al */
> -
> -#define IFNAMSIZ 16
> -#define IFALIASZ 256
> -#include <linux/hdlc/ioctl.h>
> +#include <linux/hdlc/ioctl.h> /* for IFNAMSIZ */
> +#define IFALIASZ 256
Thanks,
Frans
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 75/79] include/uapi/xen/privcmd.h: fix compilation in userspace
@ 2015-10-15 10:07 ` kbuild test robot
0 siblings, 0 replies; 206+ messages in thread
From: kbuild test robot @ 2015-10-15 10:07 UTC (permalink / raw)
To: Mikko Rapeli
Cc: kbuild-all, linux-kernel, mikko.rapeli, Stefano Stabellini,
Russell King, Konrad Rzeszutek Wilk, Boris Ostrovsky,
David Vrabel, xen-devel, linux-arm-kernel, linux-api
[-- Attachment #1: Type: text/plain, Size: 1983 bytes --]
Hi Mikko,
[auto build test ERROR on drm/drm-next -- if it's inappropriate base, please suggest rules for selecting the more suitable base]
url: https://github.com/0day-ci/linux/commits/Mikko-Rapeli/Userspace-compile-test-and-fixes-for-exported-uapi-header-files/20151015-150653
config: arm64-allmodconfig (attached as .config)
reproduce:
wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=arm64
All errors (new ones prefixed by >>):
In file included from drivers/xen/privcmd.c:33:0:
>> include/uapi/xen/privcmd.h:48:23: error: conflicting types for 'xen_pfn_t'
typedef unsigned long xen_pfn_t;
^
In file included from arch/arm64/include/asm/xen/interface.h:1:0,
from include/xen/interface/xen.h:30,
from include/xen/xen.h:23,
from arch/arm64/include/asm/io.h:35,
from include/linux/bio.h:30,
from include/linux/writeback.h:192,
from include/linux/memcontrol.h:30,
from include/linux/swap.h:8,
from drivers/xen/privcmd.c:20:
arch/arm64/include/../../arm/include/asm/xen/interface.h:39:15: note: previous declaration of 'xen_pfn_t' was here
typedef __u64 xen_pfn_t;
^
vim +/xen_pfn_t +48 include/uapi/xen/privcmd.h
42 #endif /* domid_t */
43
44 #ifndef xen_pfn_t
45 #if (defined __ARMEL__ || defined __ARMEB__)
46 typedef __u64 xen_pfn_t;
47 #else
> 48 typedef unsigned long xen_pfn_t;
49 #endif /* (defined __ARMEL__ || defined __ARMEB__) */
50 #endif /* xen_pfn_t */
51
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/octet-stream, Size: 45525 bytes --]
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 75/79] include/uapi/xen/privcmd.h: fix compilation in userspace
@ 2015-10-15 10:07 ` kbuild test robot
0 siblings, 0 replies; 206+ messages in thread
From: kbuild test robot @ 2015-10-15 10:07 UTC (permalink / raw)
Cc: kbuild-all-JC7UmRfGjtg, linux-kernel-u79uwXL29TY76Z2rM5mHXA,
mikko.rapeli-X3B1VOXEql0, Stefano Stabellini, Russell King,
Konrad Rzeszutek Wilk, Boris Ostrovsky, David Vrabel,
xen-devel-GuqFBffKawtpuQazS67q72D2FQJk+8+b,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
linux-api-u79uwXL29TY76Z2rM5mHXA
[-- Attachment #1: Type: text/plain, Size: 1983 bytes --]
Hi Mikko,
[auto build test ERROR on drm/drm-next -- if it's inappropriate base, please suggest rules for selecting the more suitable base]
url: https://github.com/0day-ci/linux/commits/Mikko-Rapeli/Userspace-compile-test-and-fixes-for-exported-uapi-header-files/20151015-150653
config: arm64-allmodconfig (attached as .config)
reproduce:
wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=arm64
All errors (new ones prefixed by >>):
In file included from drivers/xen/privcmd.c:33:0:
>> include/uapi/xen/privcmd.h:48:23: error: conflicting types for 'xen_pfn_t'
typedef unsigned long xen_pfn_t;
^
In file included from arch/arm64/include/asm/xen/interface.h:1:0,
from include/xen/interface/xen.h:30,
from include/xen/xen.h:23,
from arch/arm64/include/asm/io.h:35,
from include/linux/bio.h:30,
from include/linux/writeback.h:192,
from include/linux/memcontrol.h:30,
from include/linux/swap.h:8,
from drivers/xen/privcmd.c:20:
arch/arm64/include/../../arm/include/asm/xen/interface.h:39:15: note: previous declaration of 'xen_pfn_t' was here
typedef __u64 xen_pfn_t;
^
vim +/xen_pfn_t +48 include/uapi/xen/privcmd.h
42 #endif /* domid_t */
43
44 #ifndef xen_pfn_t
45 #if (defined __ARMEL__ || defined __ARMEB__)
46 typedef __u64 xen_pfn_t;
47 #else
> 48 typedef unsigned long xen_pfn_t;
49 #endif /* (defined __ARMEL__ || defined __ARMEB__) */
50 #endif /* xen_pfn_t */
51
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/octet-stream, Size: 45525 bytes --]
^ permalink raw reply [flat|nested] 206+ messages in thread
* [PATCH v4 75/79] include/uapi/xen/privcmd.h: fix compilation in userspace
@ 2015-10-15 10:07 ` kbuild test robot
0 siblings, 0 replies; 206+ messages in thread
From: kbuild test robot @ 2015-10-15 10:07 UTC (permalink / raw)
To: linux-arm-kernel
Hi Mikko,
[auto build test ERROR on drm/drm-next -- if it's inappropriate base, please suggest rules for selecting the more suitable base]
url: https://github.com/0day-ci/linux/commits/Mikko-Rapeli/Userspace-compile-test-and-fixes-for-exported-uapi-header-files/20151015-150653
config: arm64-allmodconfig (attached as .config)
reproduce:
wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=arm64
All errors (new ones prefixed by >>):
In file included from drivers/xen/privcmd.c:33:0:
>> include/uapi/xen/privcmd.h:48:23: error: conflicting types for 'xen_pfn_t'
typedef unsigned long xen_pfn_t;
^
In file included from arch/arm64/include/asm/xen/interface.h:1:0,
from include/xen/interface/xen.h:30,
from include/xen/xen.h:23,
from arch/arm64/include/asm/io.h:35,
from include/linux/bio.h:30,
from include/linux/writeback.h:192,
from include/linux/memcontrol.h:30,
from include/linux/swap.h:8,
from drivers/xen/privcmd.c:20:
arch/arm64/include/../../arm/include/asm/xen/interface.h:39:15: note: previous declaration of 'xen_pfn_t' was here
typedef __u64 xen_pfn_t;
^
vim +/xen_pfn_t +48 include/uapi/xen/privcmd.h
42 #endif /* domid_t */
43
44 #ifndef xen_pfn_t
45 #if (defined __ARMEL__ || defined __ARMEB__)
46 typedef __u64 xen_pfn_t;
47 #else
> 48 typedef unsigned long xen_pfn_t;
49 #endif /* (defined __ARMEL__ || defined __ARMEB__) */
50 #endif /* xen_pfn_t */
51
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/octet-stream
Size: 45525 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20151015/a5d22f23/attachment-0001.obj>
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 75/79] include/uapi/xen/privcmd.h: fix compilation in userspace
2015-10-15 5:56 ` Mikko Rapeli
(?)
@ 2015-10-15 10:07 ` kbuild test robot
-1 siblings, 0 replies; 206+ messages in thread
From: kbuild test robot @ 2015-10-15 10:07 UTC (permalink / raw)
Cc: Russell King, Stefano Stabellini, mikko.rapeli, linux-kernel,
kbuild-all, linux-api, xen-devel, Boris Ostrovsky,
linux-arm-kernel, David Vrabel
[-- Attachment #1: Type: text/plain, Size: 1983 bytes --]
Hi Mikko,
[auto build test ERROR on drm/drm-next -- if it's inappropriate base, please suggest rules for selecting the more suitable base]
url: https://github.com/0day-ci/linux/commits/Mikko-Rapeli/Userspace-compile-test-and-fixes-for-exported-uapi-header-files/20151015-150653
config: arm64-allmodconfig (attached as .config)
reproduce:
wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=arm64
All errors (new ones prefixed by >>):
In file included from drivers/xen/privcmd.c:33:0:
>> include/uapi/xen/privcmd.h:48:23: error: conflicting types for 'xen_pfn_t'
typedef unsigned long xen_pfn_t;
^
In file included from arch/arm64/include/asm/xen/interface.h:1:0,
from include/xen/interface/xen.h:30,
from include/xen/xen.h:23,
from arch/arm64/include/asm/io.h:35,
from include/linux/bio.h:30,
from include/linux/writeback.h:192,
from include/linux/memcontrol.h:30,
from include/linux/swap.h:8,
from drivers/xen/privcmd.c:20:
arch/arm64/include/../../arm/include/asm/xen/interface.h:39:15: note: previous declaration of 'xen_pfn_t' was here
typedef __u64 xen_pfn_t;
^
vim +/xen_pfn_t +48 include/uapi/xen/privcmd.h
42 #endif /* domid_t */
43
44 #ifndef xen_pfn_t
45 #if (defined __ARMEL__ || defined __ARMEB__)
46 typedef __u64 xen_pfn_t;
47 #else
> 48 typedef unsigned long xen_pfn_t;
49 #endif /* (defined __ARMEL__ || defined __ARMEB__) */
50 #endif /* xen_pfn_t */
51
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/octet-stream, Size: 45525 bytes --]
[-- Attachment #3: Type: text/plain, Size: 126 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 75/79] include/uapi/xen/privcmd.h: fix compilation in userspace
@ 2015-10-15 10:29 ` David Vrabel
0 siblings, 0 replies; 206+ messages in thread
From: David Vrabel @ 2015-10-15 10:29 UTC (permalink / raw)
To: Mikko Rapeli, linux-kernel
Cc: Stefano Stabellini, Russell King, Konrad Rzeszutek Wilk,
Boris Ostrovsky, xen-devel, linux-arm-kernel, linux-api
On 15/10/15 06:56, Mikko Rapeli wrote:
> xen/interface/xen.h is not exported from kernel headers so remove the
> dependency and provide needed defines for domid_t and xen_pfn_t if they
> are not already defined by some other e.g. Xen specific headers.
>
> Suggested by Andrew Cooper <andrew.cooper3@citrix.com> on lkml message
> <5569F9C9.8000607@citrix.com>.
>
> The ifdef for ARM is ugly but did not find better solutions for it.
>
> Fixes userspace compilation error:
>
> xen/privcmd.h:38:31: fatal error: xen/interface/xen.h: No such file or directory
[...]
> --- a/include/uapi/xen/privcmd.h
> +++ b/include/uapi/xen/privcmd.h
> @@ -35,7 +35,19 @@
>
> #include <linux/types.h>
> #include <linux/compiler.h>
> -#include <xen/interface/xen.h>
> +
> +/* Might be defined by Xen specific headers, but if not */
> +#ifndef domid_t
> +typedef __u16 domid_t;
> +#endif /* domid_t */
As the kbuild bot points out, this does not work since the existence of
a typedef cannot be checked with #ifdef.
I'm not really sure what problem you're trying to solve. A user space
program making use of this interface gets the domid_t and xen_pfn_t etc
typedefs from the headers provided as part of the libxenctrl library.
David
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 75/79] include/uapi/xen/privcmd.h: fix compilation in userspace
@ 2015-10-15 10:29 ` David Vrabel
0 siblings, 0 replies; 206+ messages in thread
From: David Vrabel @ 2015-10-15 10:29 UTC (permalink / raw)
To: Mikko Rapeli, linux-kernel-u79uwXL29TY76Z2rM5mHXA
Cc: Stefano Stabellini, Russell King, Konrad Rzeszutek Wilk,
Boris Ostrovsky, xen-devel-GuqFBffKawtpuQazS67q72D2FQJk+8+b,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
linux-api-u79uwXL29TY76Z2rM5mHXA
On 15/10/15 06:56, Mikko Rapeli wrote:
> xen/interface/xen.h is not exported from kernel headers so remove the
> dependency and provide needed defines for domid_t and xen_pfn_t if they
> are not already defined by some other e.g. Xen specific headers.
>
> Suggested by Andrew Cooper <andrew.cooper3-Sxgqhf6Nn4DQT0dZR+AlfA@public.gmane.org> on lkml message
> <5569F9C9.8000607-Sxgqhf6Nn4DQT0dZR+AlfA@public.gmane.org>.
>
> The ifdef for ARM is ugly but did not find better solutions for it.
>
> Fixes userspace compilation error:
>
> xen/privcmd.h:38:31: fatal error: xen/interface/xen.h: No such file or directory
[...]
> --- a/include/uapi/xen/privcmd.h
> +++ b/include/uapi/xen/privcmd.h
> @@ -35,7 +35,19 @@
>
> #include <linux/types.h>
> #include <linux/compiler.h>
> -#include <xen/interface/xen.h>
> +
> +/* Might be defined by Xen specific headers, but if not */
> +#ifndef domid_t
> +typedef __u16 domid_t;
> +#endif /* domid_t */
As the kbuild bot points out, this does not work since the existence of
a typedef cannot be checked with #ifdef.
I'm not really sure what problem you're trying to solve. A user space
program making use of this interface gets the domid_t and xen_pfn_t etc
typedefs from the headers provided as part of the libxenctrl library.
David
^ permalink raw reply [flat|nested] 206+ messages in thread
* [PATCH v4 75/79] include/uapi/xen/privcmd.h: fix compilation in userspace
@ 2015-10-15 10:29 ` David Vrabel
0 siblings, 0 replies; 206+ messages in thread
From: David Vrabel @ 2015-10-15 10:29 UTC (permalink / raw)
To: linux-arm-kernel
On 15/10/15 06:56, Mikko Rapeli wrote:
> xen/interface/xen.h is not exported from kernel headers so remove the
> dependency and provide needed defines for domid_t and xen_pfn_t if they
> are not already defined by some other e.g. Xen specific headers.
>
> Suggested by Andrew Cooper <andrew.cooper3@citrix.com> on lkml message
> <5569F9C9.8000607@citrix.com>.
>
> The ifdef for ARM is ugly but did not find better solutions for it.
>
> Fixes userspace compilation error:
>
> xen/privcmd.h:38:31: fatal error: xen/interface/xen.h: No such file or directory
[...]
> --- a/include/uapi/xen/privcmd.h
> +++ b/include/uapi/xen/privcmd.h
> @@ -35,7 +35,19 @@
>
> #include <linux/types.h>
> #include <linux/compiler.h>
> -#include <xen/interface/xen.h>
> +
> +/* Might be defined by Xen specific headers, but if not */
> +#ifndef domid_t
> +typedef __u16 domid_t;
> +#endif /* domid_t */
As the kbuild bot points out, this does not work since the existence of
a typedef cannot be checked with #ifdef.
I'm not really sure what problem you're trying to solve. A user space
program making use of this interface gets the domid_t and xen_pfn_t etc
typedefs from the headers provided as part of the libxenctrl library.
David
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 75/79] include/uapi/xen/privcmd.h: fix compilation in userspace
2015-10-15 5:56 ` Mikko Rapeli
` (3 preceding siblings ...)
(?)
@ 2015-10-15 10:29 ` David Vrabel
-1 siblings, 0 replies; 206+ messages in thread
From: David Vrabel @ 2015-10-15 10:29 UTC (permalink / raw)
To: Mikko Rapeli, linux-kernel
Cc: Russell King, linux-api, Stefano Stabellini, xen-devel,
Boris Ostrovsky, linux-arm-kernel
On 15/10/15 06:56, Mikko Rapeli wrote:
> xen/interface/xen.h is not exported from kernel headers so remove the
> dependency and provide needed defines for domid_t and xen_pfn_t if they
> are not already defined by some other e.g. Xen specific headers.
>
> Suggested by Andrew Cooper <andrew.cooper3@citrix.com> on lkml message
> <5569F9C9.8000607@citrix.com>.
>
> The ifdef for ARM is ugly but did not find better solutions for it.
>
> Fixes userspace compilation error:
>
> xen/privcmd.h:38:31: fatal error: xen/interface/xen.h: No such file or directory
[...]
> --- a/include/uapi/xen/privcmd.h
> +++ b/include/uapi/xen/privcmd.h
> @@ -35,7 +35,19 @@
>
> #include <linux/types.h>
> #include <linux/compiler.h>
> -#include <xen/interface/xen.h>
> +
> +/* Might be defined by Xen specific headers, but if not */
> +#ifndef domid_t
> +typedef __u16 domid_t;
> +#endif /* domid_t */
As the kbuild bot points out, this does not work since the existence of
a typedef cannot be checked with #ifdef.
I'm not really sure what problem you're trying to solve. A user space
program making use of this interface gets the domid_t and xen_pfn_t etc
typedefs from the headers provided as part of the libxenctrl library.
David
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [Xen-devel] [PATCH v4 29/79] gntalloc.h: use __u16, __u32 and __u64 from linux/types.h
2015-10-15 5:56 ` Mikko Rapeli
@ 2015-10-15 10:55 ` David Vrabel
-1 siblings, 0 replies; 206+ messages in thread
From: David Vrabel @ 2015-10-15 10:55 UTC (permalink / raw)
To: Mikko Rapeli, linux-kernel
Cc: David Vrabel, linux-api, xen-devel, Boris Ostrovsky
On 15/10/15 06:56, Mikko Rapeli wrote:
> Fixes userspace compilation errors like:
>
> xen/gntalloc.h:22:2: error: unknown type name ‘uint16_t’
Applied to for-linus-4.4, thanks.
David
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [Xen-devel] [PATCH v4 29/79] gntalloc.h: use __u16, __u32 and __u64 from linux/types.h
@ 2015-10-15 10:55 ` David Vrabel
0 siblings, 0 replies; 206+ messages in thread
From: David Vrabel @ 2015-10-15 10:55 UTC (permalink / raw)
To: Mikko Rapeli, linux-kernel
Cc: David Vrabel, linux-api, xen-devel, Boris Ostrovsky
On 15/10/15 06:56, Mikko Rapeli wrote:
> Fixes userspace compilation errors like:
>
> xen/gntalloc.h:22:2: error: unknown type name ‘uint16_t’
Applied to for-linus-4.4, thanks.
David
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 29/79] gntalloc.h: use __u16, __u32 and __u64 from linux/types.h
2015-10-15 5:56 ` Mikko Rapeli
(?)
@ 2015-10-15 10:55 ` David Vrabel
-1 siblings, 0 replies; 206+ messages in thread
From: David Vrabel @ 2015-10-15 10:55 UTC (permalink / raw)
To: Mikko Rapeli, linux-kernel
Cc: linux-api, Boris Ostrovsky, David Vrabel, xen-devel
On 15/10/15 06:56, Mikko Rapeli wrote:
> Fixes userspace compilation errors like:
>
> xen/gntalloc.h:22:2: error: unknown type name ‘uint16_t’
Applied to for-linus-4.4, thanks.
David
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [Xen-devel] [PATCH v4 30/79] gntdev.h: use __u32 and __u64 from linux/types.h
2015-10-15 5:56 ` Mikko Rapeli
@ 2015-10-15 10:56 ` David Vrabel
-1 siblings, 0 replies; 206+ messages in thread
From: David Vrabel @ 2015-10-15 10:56 UTC (permalink / raw)
To: Mikko Rapeli, linux-kernel
Cc: David Vrabel, linux-api, xen-devel, Boris Ostrovsky
On 15/10/15 06:56, Mikko Rapeli wrote:
> Fixes userspace compilation errors like:
>
> xen/gntdev.h:38:2: error: unknown type name ‘uint32_t’
Applied to for-linus-4.4, thanks.
David
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [Xen-devel] [PATCH v4 30/79] gntdev.h: use __u32 and __u64 from linux/types.h
@ 2015-10-15 10:56 ` David Vrabel
0 siblings, 0 replies; 206+ messages in thread
From: David Vrabel @ 2015-10-15 10:56 UTC (permalink / raw)
To: Mikko Rapeli, linux-kernel
Cc: David Vrabel, linux-api, xen-devel, Boris Ostrovsky
On 15/10/15 06:56, Mikko Rapeli wrote:
> Fixes userspace compilation errors like:
>
> xen/gntdev.h:38:2: error: unknown type name ‘uint32_t’
Applied to for-linus-4.4, thanks.
David
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 30/79] gntdev.h: use __u32 and __u64 from linux/types.h
2015-10-15 5:56 ` Mikko Rapeli
(?)
@ 2015-10-15 10:56 ` David Vrabel
-1 siblings, 0 replies; 206+ messages in thread
From: David Vrabel @ 2015-10-15 10:56 UTC (permalink / raw)
To: Mikko Rapeli, linux-kernel
Cc: linux-api, Boris Ostrovsky, David Vrabel, xen-devel
On 15/10/15 06:56, Mikko Rapeli wrote:
> Fixes userspace compilation errors like:
>
> xen/gntdev.h:38:2: error: unknown type name ‘uint32_t’
Applied to for-linus-4.4, thanks.
David
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 23/79] rds.h: use __u8, __u16, __s16, __u32 and __s64 from linux/types.h
@ 2015-10-15 11:06 ` Sowmini Varadhan
0 siblings, 0 replies; 206+ messages in thread
From: Sowmini Varadhan @ 2015-10-15 11:06 UTC (permalink / raw)
To: Mikko Rapeli; +Cc: linux-kernel, David S. Miller, linux-api
On (10/15/15 07:56), Mikko Rapeli wrote:
> Date: Thu, 15 Oct 2015 07:56:01 +0200
> From: Mikko Rapeli <mikko.rapeli@iki.fi>
> To: linux-kernel@vger.kernel.org
> Cc: mikko.rapeli@iki.fi, "David S. Miller" <davem@davemloft.net>, Sowmini
> Varadhan <sowmini.varadhan@oracle.com>, linux-api@vger.kernel.org
> Subject: [PATCH v4 23/79] rds.h: use __u8, __u16, __s16, __u32 and __s64
> from linux/types.h
> X-Mailer: git-send-email 2.6.1
>
> Fixes userspace compilation errors like:
>
> linux/rds.h:96:2: error: unknown type name ‘uint8_t’
Can't you just include <stdint.h> in linux/rds.h? (similar to the
fix for linux/rds)? It would reduce the deltas significantly,
and portable applications are likely to expect uint8_t etc anyway.
--Sowmini
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 23/79] rds.h: use __u8, __u16, __s16, __u32 and __s64 from linux/types.h
@ 2015-10-15 11:06 ` Sowmini Varadhan
0 siblings, 0 replies; 206+ messages in thread
From: Sowmini Varadhan @ 2015-10-15 11:06 UTC (permalink / raw)
To: Mikko Rapeli
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA, David S. Miller,
linux-api-u79uwXL29TY76Z2rM5mHXA
On (10/15/15 07:56), Mikko Rapeli wrote:
> Date: Thu, 15 Oct 2015 07:56:01 +0200
> From: Mikko Rapeli <mikko.rapeli-X3B1VOXEql0@public.gmane.org>
> To: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> Cc: mikko.rapeli-X3B1VOXEql0@public.gmane.org, "David S. Miller" <davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>, Sowmini
> Varadhan <sowmini.varadhan-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>, linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> Subject: [PATCH v4 23/79] rds.h: use __u8, __u16, __s16, __u32 and __s64
> from linux/types.h
> X-Mailer: git-send-email 2.6.1
>
> Fixes userspace compilation errors like:
>
> linux/rds.h:96:2: error: unknown type name ‘uint8_t’
Can't you just include <stdint.h> in linux/rds.h? (similar to the
fix for linux/rds)? It would reduce the deltas significantly,
and portable applications are likely to expect uint8_t etc anyway.
--Sowmini
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 38/79] include/uapi/linux/rds.h: include linux/socket.h and linux/types.h
@ 2015-10-15 11:10 ` Sowmini Varadhan
0 siblings, 0 replies; 206+ messages in thread
From: Sowmini Varadhan @ 2015-10-15 11:10 UTC (permalink / raw)
To: Mikko Rapeli; +Cc: linux-kernel, David S. Miller, linux-api
On (10/15/15 07:56), Mikko Rapeli wrote:
> Fixes userspace compilation errors like:
>
> error: unknown type name ‘__be32’
> error: field ‘dest_addr’ has incomplete type
> struct sockaddr_storage dest_addr;
Acked-by: Sowmini Varadhan <sowmini.varadhan@oracle.com>
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 38/79] include/uapi/linux/rds.h: include linux/socket.h and linux/types.h
@ 2015-10-15 11:10 ` Sowmini Varadhan
0 siblings, 0 replies; 206+ messages in thread
From: Sowmini Varadhan @ 2015-10-15 11:10 UTC (permalink / raw)
To: Mikko Rapeli
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA, David S. Miller,
linux-api-u79uwXL29TY76Z2rM5mHXA
On (10/15/15 07:56), Mikko Rapeli wrote:
> Fixes userspace compilation errors like:
>
> error: unknown type name ‘__be32’
> error: field ‘dest_addr’ has incomplete type
> struct sockaddr_storage dest_addr;
Acked-by: Sowmini Varadhan <sowmini.varadhan-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 75/79] include/uapi/xen/privcmd.h: fix compilation in userspace
2015-10-15 10:29 ` David Vrabel
@ 2015-10-15 11:18 ` Mikko Rapeli
-1 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 11:18 UTC (permalink / raw)
To: David Vrabel
Cc: linux-kernel, Stefano Stabellini, Russell King,
Konrad Rzeszutek Wilk, Boris Ostrovsky, xen-devel,
linux-arm-kernel, linux-api
On Thu, Oct 15, 2015 at 11:29:12AM +0100, David Vrabel wrote:
> On 15/10/15 06:56, Mikko Rapeli wrote:
> > xen/interface/xen.h is not exported from kernel headers so remove the
> > dependency and provide needed defines for domid_t and xen_pfn_t if they
> > are not already defined by some other e.g. Xen specific headers.
> >
> > Suggested by Andrew Cooper <andrew.cooper3@citrix.com> on lkml message
> > <5569F9C9.8000607@citrix.com>.
> >
> > The ifdef for ARM is ugly but did not find better solutions for it.
> >
> > Fixes userspace compilation error:
> >
> > xen/privcmd.h:38:31: fatal error: xen/interface/xen.h: No such file or directory
> [...]
> > --- a/include/uapi/xen/privcmd.h
> > +++ b/include/uapi/xen/privcmd.h
> > @@ -35,7 +35,19 @@
> >
> > #include <linux/types.h>
> > #include <linux/compiler.h>
> > -#include <xen/interface/xen.h>
> > +
> > +/* Might be defined by Xen specific headers, but if not */
> > +#ifndef domid_t
> > +typedef __u16 domid_t;
> > +#endif /* domid_t */
>
> As the kbuild bot points out, this does not work since the existence of
> a typedef cannot be checked with #ifdef.
Yeah, this hack doesn't cut it. Sorry. Tried to implement these changes:
http://www.spinics.net/lists/linux-api/msg11048.html
> I'm not really sure what problem you're trying to solve. A user space
> program making use of this interface gets the domid_t and xen_pfn_t etc
> typedefs from the headers provided as part of the libxenctrl library.
I'm trying to make sure that kernel headers in userspace compile with minimal
dependencies which are gcc and libc.
For me it is clear by now that many Linux API's and ABI's like Xen parts do
not live in the uapi header files and instead there's a separate userspace
library with needed headers and defines which have embedded copies of
the needed API and ABI definitions, like header files.
So how could this file be changed so that it compiles in userspace without
definitions from libxenctrl?
I guess I could copy the needed definitions for domid_t and xen_pfn_t from
xen/interface/xen.h of libxenctrl. That I should have done to begin with
instead of trying to hack something on my own.
-Mikko
^ permalink raw reply [flat|nested] 206+ messages in thread
* [PATCH v4 75/79] include/uapi/xen/privcmd.h: fix compilation in userspace
@ 2015-10-15 11:18 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 11:18 UTC (permalink / raw)
To: linux-arm-kernel
On Thu, Oct 15, 2015 at 11:29:12AM +0100, David Vrabel wrote:
> On 15/10/15 06:56, Mikko Rapeli wrote:
> > xen/interface/xen.h is not exported from kernel headers so remove the
> > dependency and provide needed defines for domid_t and xen_pfn_t if they
> > are not already defined by some other e.g. Xen specific headers.
> >
> > Suggested by Andrew Cooper <andrew.cooper3@citrix.com> on lkml message
> > <5569F9C9.8000607@citrix.com>.
> >
> > The ifdef for ARM is ugly but did not find better solutions for it.
> >
> > Fixes userspace compilation error:
> >
> > xen/privcmd.h:38:31: fatal error: xen/interface/xen.h: No such file or directory
> [...]
> > --- a/include/uapi/xen/privcmd.h
> > +++ b/include/uapi/xen/privcmd.h
> > @@ -35,7 +35,19 @@
> >
> > #include <linux/types.h>
> > #include <linux/compiler.h>
> > -#include <xen/interface/xen.h>
> > +
> > +/* Might be defined by Xen specific headers, but if not */
> > +#ifndef domid_t
> > +typedef __u16 domid_t;
> > +#endif /* domid_t */
>
> As the kbuild bot points out, this does not work since the existence of
> a typedef cannot be checked with #ifdef.
Yeah, this hack doesn't cut it. Sorry. Tried to implement these changes:
http://www.spinics.net/lists/linux-api/msg11048.html
> I'm not really sure what problem you're trying to solve. A user space
> program making use of this interface gets the domid_t and xen_pfn_t etc
> typedefs from the headers provided as part of the libxenctrl library.
I'm trying to make sure that kernel headers in userspace compile with minimal
dependencies which are gcc and libc.
For me it is clear by now that many Linux API's and ABI's like Xen parts do
not live in the uapi header files and instead there's a separate userspace
library with needed headers and defines which have embedded copies of
the needed API and ABI definitions, like header files.
So how could this file be changed so that it compiles in userspace without
definitions from libxenctrl?
I guess I could copy the needed definitions for domid_t and xen_pfn_t from
xen/interface/xen.h of libxenctrl. That I should have done to begin with
instead of trying to hack something on my own.
-Mikko
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 75/79] include/uapi/xen/privcmd.h: fix compilation in userspace
2015-10-15 10:29 ` David Vrabel
(?)
(?)
@ 2015-10-15 11:18 ` Mikko Rapeli
-1 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 11:18 UTC (permalink / raw)
To: David Vrabel
Cc: Russell King, linux-api, Stefano Stabellini, linux-kernel,
xen-devel, Boris Ostrovsky, linux-arm-kernel
On Thu, Oct 15, 2015 at 11:29:12AM +0100, David Vrabel wrote:
> On 15/10/15 06:56, Mikko Rapeli wrote:
> > xen/interface/xen.h is not exported from kernel headers so remove the
> > dependency and provide needed defines for domid_t and xen_pfn_t if they
> > are not already defined by some other e.g. Xen specific headers.
> >
> > Suggested by Andrew Cooper <andrew.cooper3@citrix.com> on lkml message
> > <5569F9C9.8000607@citrix.com>.
> >
> > The ifdef for ARM is ugly but did not find better solutions for it.
> >
> > Fixes userspace compilation error:
> >
> > xen/privcmd.h:38:31: fatal error: xen/interface/xen.h: No such file or directory
> [...]
> > --- a/include/uapi/xen/privcmd.h
> > +++ b/include/uapi/xen/privcmd.h
> > @@ -35,7 +35,19 @@
> >
> > #include <linux/types.h>
> > #include <linux/compiler.h>
> > -#include <xen/interface/xen.h>
> > +
> > +/* Might be defined by Xen specific headers, but if not */
> > +#ifndef domid_t
> > +typedef __u16 domid_t;
> > +#endif /* domid_t */
>
> As the kbuild bot points out, this does not work since the existence of
> a typedef cannot be checked with #ifdef.
Yeah, this hack doesn't cut it. Sorry. Tried to implement these changes:
http://www.spinics.net/lists/linux-api/msg11048.html
> I'm not really sure what problem you're trying to solve. A user space
> program making use of this interface gets the domid_t and xen_pfn_t etc
> typedefs from the headers provided as part of the libxenctrl library.
I'm trying to make sure that kernel headers in userspace compile with minimal
dependencies which are gcc and libc.
For me it is clear by now that many Linux API's and ABI's like Xen parts do
not live in the uapi header files and instead there's a separate userspace
library with needed headers and defines which have embedded copies of
the needed API and ABI definitions, like header files.
So how could this file be changed so that it compiles in userspace without
definitions from libxenctrl?
I guess I could copy the needed definitions for domid_t and xen_pfn_t from
xen/interface/xen.h of libxenctrl. That I should have done to begin with
instead of trying to hack something on my own.
-Mikko
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 75/79] include/uapi/xen/privcmd.h: fix compilation in userspace
@ 2015-10-15 11:24 ` David Vrabel
0 siblings, 0 replies; 206+ messages in thread
From: David Vrabel @ 2015-10-15 11:24 UTC (permalink / raw)
To: Mikko Rapeli
Cc: linux-kernel, Stefano Stabellini, Russell King,
Konrad Rzeszutek Wilk, Boris Ostrovsky, xen-devel,
linux-arm-kernel, linux-api
On 15/10/15 12:18, Mikko Rapeli wrote:
> On Thu, Oct 15, 2015 at 11:29:12AM +0100, David Vrabel wrote:
>> On 15/10/15 06:56, Mikko Rapeli wrote:
>>> xen/interface/xen.h is not exported from kernel headers so remove the
>>> dependency and provide needed defines for domid_t and xen_pfn_t if they
>>> are not already defined by some other e.g. Xen specific headers.
>>>
>>> Suggested by Andrew Cooper <andrew.cooper3@citrix.com> on lkml message
>>> <5569F9C9.8000607@citrix.com>.
>>>
>>> The ifdef for ARM is ugly but did not find better solutions for it.
>>>
>>> Fixes userspace compilation error:
>>>
>>> xen/privcmd.h:38:31: fatal error: xen/interface/xen.h: No such file or directory
>> [...]
>>> --- a/include/uapi/xen/privcmd.h
>>> +++ b/include/uapi/xen/privcmd.h
>>> @@ -35,7 +35,19 @@
>>>
>>> #include <linux/types.h>
>>> #include <linux/compiler.h>
>>> -#include <xen/interface/xen.h>
>>> +
>>> +/* Might be defined by Xen specific headers, but if not */
>>> +#ifndef domid_t
>>> +typedef __u16 domid_t;
>>> +#endif /* domid_t */
>>
>> As the kbuild bot points out, this does not work since the existence of
>> a typedef cannot be checked with #ifdef.
>
> Yeah, this hack doesn't cut it. Sorry. Tried to implement these changes:
> http://www.spinics.net/lists/linux-api/msg11048.html
>
>> I'm not really sure what problem you're trying to solve. A user space
>> program making use of this interface gets the domid_t and xen_pfn_t etc
>> typedefs from the headers provided as part of the libxenctrl library.
>
> I'm trying to make sure that kernel headers in userspace compile with minimal
> dependencies which are gcc and libc.
>
> For me it is clear by now that many Linux API's and ABI's like Xen parts do
> not live in the uapi header files and instead there's a separate userspace
> library with needed headers and defines which have embedded copies of
> the needed API and ABI definitions, like header files.
>
> So how could this file be changed so that it compiles in userspace without
> definitions from libxenctrl?
I don't think anything needs to be changed.
Instead I would make your compilation check of this header dependent on
the existence of the xen/interface/xen.h header. Or you may exclude the
check of this header entirely.
> I guess I could copy the needed definitions for domid_t and xen_pfn_t from
> xen/interface/xen.h of libxenctrl. That I should have done to begin with
> instead of trying to hack something on my own.
I do not want definitions duplicated/copied from the hypervisor ABI
headers. This causes problems when support for new architectures is
added (for example).
David
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 75/79] include/uapi/xen/privcmd.h: fix compilation in userspace
@ 2015-10-15 11:24 ` David Vrabel
0 siblings, 0 replies; 206+ messages in thread
From: David Vrabel @ 2015-10-15 11:24 UTC (permalink / raw)
To: Mikko Rapeli
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA, Stefano Stabellini,
Russell King, Konrad Rzeszutek Wilk, Boris Ostrovsky,
xen-devel-GuqFBffKawtpuQazS67q72D2FQJk+8+b,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
linux-api-u79uwXL29TY76Z2rM5mHXA
On 15/10/15 12:18, Mikko Rapeli wrote:
> On Thu, Oct 15, 2015 at 11:29:12AM +0100, David Vrabel wrote:
>> On 15/10/15 06:56, Mikko Rapeli wrote:
>>> xen/interface/xen.h is not exported from kernel headers so remove the
>>> dependency and provide needed defines for domid_t and xen_pfn_t if they
>>> are not already defined by some other e.g. Xen specific headers.
>>>
>>> Suggested by Andrew Cooper <andrew.cooper3-Sxgqhf6Nn4DQT0dZR+AlfA@public.gmane.org> on lkml message
>>> <5569F9C9.8000607-Sxgqhf6Nn4DQT0dZR+AlfA@public.gmane.org>.
>>>
>>> The ifdef for ARM is ugly but did not find better solutions for it.
>>>
>>> Fixes userspace compilation error:
>>>
>>> xen/privcmd.h:38:31: fatal error: xen/interface/xen.h: No such file or directory
>> [...]
>>> --- a/include/uapi/xen/privcmd.h
>>> +++ b/include/uapi/xen/privcmd.h
>>> @@ -35,7 +35,19 @@
>>>
>>> #include <linux/types.h>
>>> #include <linux/compiler.h>
>>> -#include <xen/interface/xen.h>
>>> +
>>> +/* Might be defined by Xen specific headers, but if not */
>>> +#ifndef domid_t
>>> +typedef __u16 domid_t;
>>> +#endif /* domid_t */
>>
>> As the kbuild bot points out, this does not work since the existence of
>> a typedef cannot be checked with #ifdef.
>
> Yeah, this hack doesn't cut it. Sorry. Tried to implement these changes:
> http://www.spinics.net/lists/linux-api/msg11048.html
>
>> I'm not really sure what problem you're trying to solve. A user space
>> program making use of this interface gets the domid_t and xen_pfn_t etc
>> typedefs from the headers provided as part of the libxenctrl library.
>
> I'm trying to make sure that kernel headers in userspace compile with minimal
> dependencies which are gcc and libc.
>
> For me it is clear by now that many Linux API's and ABI's like Xen parts do
> not live in the uapi header files and instead there's a separate userspace
> library with needed headers and defines which have embedded copies of
> the needed API and ABI definitions, like header files.
>
> So how could this file be changed so that it compiles in userspace without
> definitions from libxenctrl?
I don't think anything needs to be changed.
Instead I would make your compilation check of this header dependent on
the existence of the xen/interface/xen.h header. Or you may exclude the
check of this header entirely.
> I guess I could copy the needed definitions for domid_t and xen_pfn_t from
> xen/interface/xen.h of libxenctrl. That I should have done to begin with
> instead of trying to hack something on my own.
I do not want definitions duplicated/copied from the hypervisor ABI
headers. This causes problems when support for new architectures is
added (for example).
David
^ permalink raw reply [flat|nested] 206+ messages in thread
* [PATCH v4 75/79] include/uapi/xen/privcmd.h: fix compilation in userspace
@ 2015-10-15 11:24 ` David Vrabel
0 siblings, 0 replies; 206+ messages in thread
From: David Vrabel @ 2015-10-15 11:24 UTC (permalink / raw)
To: linux-arm-kernel
On 15/10/15 12:18, Mikko Rapeli wrote:
> On Thu, Oct 15, 2015 at 11:29:12AM +0100, David Vrabel wrote:
>> On 15/10/15 06:56, Mikko Rapeli wrote:
>>> xen/interface/xen.h is not exported from kernel headers so remove the
>>> dependency and provide needed defines for domid_t and xen_pfn_t if they
>>> are not already defined by some other e.g. Xen specific headers.
>>>
>>> Suggested by Andrew Cooper <andrew.cooper3@citrix.com> on lkml message
>>> <5569F9C9.8000607@citrix.com>.
>>>
>>> The ifdef for ARM is ugly but did not find better solutions for it.
>>>
>>> Fixes userspace compilation error:
>>>
>>> xen/privcmd.h:38:31: fatal error: xen/interface/xen.h: No such file or directory
>> [...]
>>> --- a/include/uapi/xen/privcmd.h
>>> +++ b/include/uapi/xen/privcmd.h
>>> @@ -35,7 +35,19 @@
>>>
>>> #include <linux/types.h>
>>> #include <linux/compiler.h>
>>> -#include <xen/interface/xen.h>
>>> +
>>> +/* Might be defined by Xen specific headers, but if not */
>>> +#ifndef domid_t
>>> +typedef __u16 domid_t;
>>> +#endif /* domid_t */
>>
>> As the kbuild bot points out, this does not work since the existence of
>> a typedef cannot be checked with #ifdef.
>
> Yeah, this hack doesn't cut it. Sorry. Tried to implement these changes:
> http://www.spinics.net/lists/linux-api/msg11048.html
>
>> I'm not really sure what problem you're trying to solve. A user space
>> program making use of this interface gets the domid_t and xen_pfn_t etc
>> typedefs from the headers provided as part of the libxenctrl library.
>
> I'm trying to make sure that kernel headers in userspace compile with minimal
> dependencies which are gcc and libc.
>
> For me it is clear by now that many Linux API's and ABI's like Xen parts do
> not live in the uapi header files and instead there's a separate userspace
> library with needed headers and defines which have embedded copies of
> the needed API and ABI definitions, like header files.
>
> So how could this file be changed so that it compiles in userspace without
> definitions from libxenctrl?
I don't think anything needs to be changed.
Instead I would make your compilation check of this header dependent on
the existence of the xen/interface/xen.h header. Or you may exclude the
check of this header entirely.
> I guess I could copy the needed definitions for domid_t and xen_pfn_t from
> xen/interface/xen.h of libxenctrl. That I should have done to begin with
> instead of trying to hack something on my own.
I do not want definitions duplicated/copied from the hypervisor ABI
headers. This causes problems when support for new architectures is
added (for example).
David
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 75/79] include/uapi/xen/privcmd.h: fix compilation in userspace
2015-10-15 11:18 ` Mikko Rapeli
(?)
@ 2015-10-15 11:24 ` David Vrabel
-1 siblings, 0 replies; 206+ messages in thread
From: David Vrabel @ 2015-10-15 11:24 UTC (permalink / raw)
To: Mikko Rapeli
Cc: Russell King, linux-api, Stefano Stabellini, linux-kernel,
xen-devel, Boris Ostrovsky, linux-arm-kernel
On 15/10/15 12:18, Mikko Rapeli wrote:
> On Thu, Oct 15, 2015 at 11:29:12AM +0100, David Vrabel wrote:
>> On 15/10/15 06:56, Mikko Rapeli wrote:
>>> xen/interface/xen.h is not exported from kernel headers so remove the
>>> dependency and provide needed defines for domid_t and xen_pfn_t if they
>>> are not already defined by some other e.g. Xen specific headers.
>>>
>>> Suggested by Andrew Cooper <andrew.cooper3@citrix.com> on lkml message
>>> <5569F9C9.8000607@citrix.com>.
>>>
>>> The ifdef for ARM is ugly but did not find better solutions for it.
>>>
>>> Fixes userspace compilation error:
>>>
>>> xen/privcmd.h:38:31: fatal error: xen/interface/xen.h: No such file or directory
>> [...]
>>> --- a/include/uapi/xen/privcmd.h
>>> +++ b/include/uapi/xen/privcmd.h
>>> @@ -35,7 +35,19 @@
>>>
>>> #include <linux/types.h>
>>> #include <linux/compiler.h>
>>> -#include <xen/interface/xen.h>
>>> +
>>> +/* Might be defined by Xen specific headers, but if not */
>>> +#ifndef domid_t
>>> +typedef __u16 domid_t;
>>> +#endif /* domid_t */
>>
>> As the kbuild bot points out, this does not work since the existence of
>> a typedef cannot be checked with #ifdef.
>
> Yeah, this hack doesn't cut it. Sorry. Tried to implement these changes:
> http://www.spinics.net/lists/linux-api/msg11048.html
>
>> I'm not really sure what problem you're trying to solve. A user space
>> program making use of this interface gets the domid_t and xen_pfn_t etc
>> typedefs from the headers provided as part of the libxenctrl library.
>
> I'm trying to make sure that kernel headers in userspace compile with minimal
> dependencies which are gcc and libc.
>
> For me it is clear by now that many Linux API's and ABI's like Xen parts do
> not live in the uapi header files and instead there's a separate userspace
> library with needed headers and defines which have embedded copies of
> the needed API and ABI definitions, like header files.
>
> So how could this file be changed so that it compiles in userspace without
> definitions from libxenctrl?
I don't think anything needs to be changed.
Instead I would make your compilation check of this header dependent on
the existence of the xen/interface/xen.h header. Or you may exclude the
check of this header entirely.
> I guess I could copy the needed definitions for domid_t and xen_pfn_t from
> xen/interface/xen.h of libxenctrl. That I should have done to begin with
> instead of trying to hack something on my own.
I do not want definitions duplicated/copied from the hypervisor ABI
headers. This causes problems when support for new architectures is
added (for example).
David
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 75/79] include/uapi/xen/privcmd.h: fix compilation in userspace
@ 2015-10-15 11:35 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 11:35 UTC (permalink / raw)
To: David Vrabel
Cc: linux-kernel, Stefano Stabellini, Russell King,
Konrad Rzeszutek Wilk, Boris Ostrovsky, xen-devel,
linux-arm-kernel, linux-api
On Thu, Oct 15, 2015 at 12:24:39PM +0100, David Vrabel wrote:
> On 15/10/15 12:18, Mikko Rapeli wrote:
> > On Thu, Oct 15, 2015 at 11:29:12AM +0100, David Vrabel wrote:
> >> On 15/10/15 06:56, Mikko Rapeli wrote:
> >>> xen/interface/xen.h is not exported from kernel headers so remove the
> >>> dependency and provide needed defines for domid_t and xen_pfn_t if they
> >>> are not already defined by some other e.g. Xen specific headers.
> >>>
> >>> Suggested by Andrew Cooper <andrew.cooper3@citrix.com> on lkml message
> >>> <5569F9C9.8000607@citrix.com>.
> >>>
> >>> The ifdef for ARM is ugly but did not find better solutions for it.
> >>>
> >>> Fixes userspace compilation error:
> >>>
> >>> xen/privcmd.h:38:31: fatal error: xen/interface/xen.h: No such file or directory
> >> [...]
> >>> --- a/include/uapi/xen/privcmd.h
> >>> +++ b/include/uapi/xen/privcmd.h
> >>> @@ -35,7 +35,19 @@
> >>>
> >>> #include <linux/types.h>
> >>> #include <linux/compiler.h>
> >>> -#include <xen/interface/xen.h>
> >>> +
> >>> +/* Might be defined by Xen specific headers, but if not */
> >>> +#ifndef domid_t
> >>> +typedef __u16 domid_t;
> >>> +#endif /* domid_t */
> >>
> >> As the kbuild bot points out, this does not work since the existence of
> >> a typedef cannot be checked with #ifdef.
> >
> > Yeah, this hack doesn't cut it. Sorry. Tried to implement these changes:
> > http://www.spinics.net/lists/linux-api/msg11048.html
> >
> >> I'm not really sure what problem you're trying to solve. A user space
> >> program making use of this interface gets the domid_t and xen_pfn_t etc
> >> typedefs from the headers provided as part of the libxenctrl library.
> >
> > I'm trying to make sure that kernel headers in userspace compile with minimal
> > dependencies which are gcc and libc.
> >
> > For me it is clear by now that many Linux API's and ABI's like Xen parts do
> > not live in the uapi header files and instead there's a separate userspace
> > library with needed headers and defines which have embedded copies of
> > the needed API and ABI definitions, like header files.
> >
> > So how could this file be changed so that it compiles in userspace without
> > definitions from libxenctrl?
>
> I don't think anything needs to be changed.
>
> Instead I would make your compilation check of this header dependent on
> the existence of the xen/interface/xen.h header. Or you may exclude the
> check of this header entirely.
There are not many headers in uapi which require additional userspace
headers to compile (I'm not saying that uapi headers represent the full
API's/ABI's, it's clear they don't). If there are ~700 headers and just a
single one needs an exception and additional dependencies, I would try to
make it work without the dependency. I just need some advice and guidance
from maintainers how to do this.
Or we should start tracking these userspace library dependencies too,
at least at linux-headers package levels in distributions. This might
be a good idea anyway, but then we might as well move headers like this
directly to the userspace library and out of include/uapi.
Both would solve the non-compiling uapi header problem.
> > I guess I could copy the needed definitions for domid_t and xen_pfn_t from
> > xen/interface/xen.h of libxenctrl. That I should have done to begin with
> > instead of trying to hack something on my own.
>
> I do not want definitions duplicated/copied from the hypervisor ABI
> headers. This causes problems when support for new architectures is
> added (for example).
Understood.
-Mikko
> David
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 75/79] include/uapi/xen/privcmd.h: fix compilation in userspace
@ 2015-10-15 11:35 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 11:35 UTC (permalink / raw)
To: David Vrabel
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA, Stefano Stabellini,
Russell King, Konrad Rzeszutek Wilk, Boris Ostrovsky,
xen-devel-GuqFBffKawtpuQazS67q72D2FQJk+8+b,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
linux-api-u79uwXL29TY76Z2rM5mHXA
On Thu, Oct 15, 2015 at 12:24:39PM +0100, David Vrabel wrote:
> On 15/10/15 12:18, Mikko Rapeli wrote:
> > On Thu, Oct 15, 2015 at 11:29:12AM +0100, David Vrabel wrote:
> >> On 15/10/15 06:56, Mikko Rapeli wrote:
> >>> xen/interface/xen.h is not exported from kernel headers so remove the
> >>> dependency and provide needed defines for domid_t and xen_pfn_t if they
> >>> are not already defined by some other e.g. Xen specific headers.
> >>>
> >>> Suggested by Andrew Cooper <andrew.cooper3-Sxgqhf6Nn4DQT0dZR+AlfA@public.gmane.org> on lkml message
> >>> <5569F9C9.8000607-Sxgqhf6Nn4DQT0dZR+AlfA@public.gmane.org>.
> >>>
> >>> The ifdef for ARM is ugly but did not find better solutions for it.
> >>>
> >>> Fixes userspace compilation error:
> >>>
> >>> xen/privcmd.h:38:31: fatal error: xen/interface/xen.h: No such file or directory
> >> [...]
> >>> --- a/include/uapi/xen/privcmd.h
> >>> +++ b/include/uapi/xen/privcmd.h
> >>> @@ -35,7 +35,19 @@
> >>>
> >>> #include <linux/types.h>
> >>> #include <linux/compiler.h>
> >>> -#include <xen/interface/xen.h>
> >>> +
> >>> +/* Might be defined by Xen specific headers, but if not */
> >>> +#ifndef domid_t
> >>> +typedef __u16 domid_t;
> >>> +#endif /* domid_t */
> >>
> >> As the kbuild bot points out, this does not work since the existence of
> >> a typedef cannot be checked with #ifdef.
> >
> > Yeah, this hack doesn't cut it. Sorry. Tried to implement these changes:
> > http://www.spinics.net/lists/linux-api/msg11048.html
> >
> >> I'm not really sure what problem you're trying to solve. A user space
> >> program making use of this interface gets the domid_t and xen_pfn_t etc
> >> typedefs from the headers provided as part of the libxenctrl library.
> >
> > I'm trying to make sure that kernel headers in userspace compile with minimal
> > dependencies which are gcc and libc.
> >
> > For me it is clear by now that many Linux API's and ABI's like Xen parts do
> > not live in the uapi header files and instead there's a separate userspace
> > library with needed headers and defines which have embedded copies of
> > the needed API and ABI definitions, like header files.
> >
> > So how could this file be changed so that it compiles in userspace without
> > definitions from libxenctrl?
>
> I don't think anything needs to be changed.
>
> Instead I would make your compilation check of this header dependent on
> the existence of the xen/interface/xen.h header. Or you may exclude the
> check of this header entirely.
There are not many headers in uapi which require additional userspace
headers to compile (I'm not saying that uapi headers represent the full
API's/ABI's, it's clear they don't). If there are ~700 headers and just a
single one needs an exception and additional dependencies, I would try to
make it work without the dependency. I just need some advice and guidance
from maintainers how to do this.
Or we should start tracking these userspace library dependencies too,
at least at linux-headers package levels in distributions. This might
be a good idea anyway, but then we might as well move headers like this
directly to the userspace library and out of include/uapi.
Both would solve the non-compiling uapi header problem.
> > I guess I could copy the needed definitions for domid_t and xen_pfn_t from
> > xen/interface/xen.h of libxenctrl. That I should have done to begin with
> > instead of trying to hack something on my own.
>
> I do not want definitions duplicated/copied from the hypervisor ABI
> headers. This causes problems when support for new architectures is
> added (for example).
Understood.
-Mikko
> David
^ permalink raw reply [flat|nested] 206+ messages in thread
* [PATCH v4 75/79] include/uapi/xen/privcmd.h: fix compilation in userspace
@ 2015-10-15 11:35 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 11:35 UTC (permalink / raw)
To: linux-arm-kernel
On Thu, Oct 15, 2015 at 12:24:39PM +0100, David Vrabel wrote:
> On 15/10/15 12:18, Mikko Rapeli wrote:
> > On Thu, Oct 15, 2015 at 11:29:12AM +0100, David Vrabel wrote:
> >> On 15/10/15 06:56, Mikko Rapeli wrote:
> >>> xen/interface/xen.h is not exported from kernel headers so remove the
> >>> dependency and provide needed defines for domid_t and xen_pfn_t if they
> >>> are not already defined by some other e.g. Xen specific headers.
> >>>
> >>> Suggested by Andrew Cooper <andrew.cooper3@citrix.com> on lkml message
> >>> <5569F9C9.8000607@citrix.com>.
> >>>
> >>> The ifdef for ARM is ugly but did not find better solutions for it.
> >>>
> >>> Fixes userspace compilation error:
> >>>
> >>> xen/privcmd.h:38:31: fatal error: xen/interface/xen.h: No such file or directory
> >> [...]
> >>> --- a/include/uapi/xen/privcmd.h
> >>> +++ b/include/uapi/xen/privcmd.h
> >>> @@ -35,7 +35,19 @@
> >>>
> >>> #include <linux/types.h>
> >>> #include <linux/compiler.h>
> >>> -#include <xen/interface/xen.h>
> >>> +
> >>> +/* Might be defined by Xen specific headers, but if not */
> >>> +#ifndef domid_t
> >>> +typedef __u16 domid_t;
> >>> +#endif /* domid_t */
> >>
> >> As the kbuild bot points out, this does not work since the existence of
> >> a typedef cannot be checked with #ifdef.
> >
> > Yeah, this hack doesn't cut it. Sorry. Tried to implement these changes:
> > http://www.spinics.net/lists/linux-api/msg11048.html
> >
> >> I'm not really sure what problem you're trying to solve. A user space
> >> program making use of this interface gets the domid_t and xen_pfn_t etc
> >> typedefs from the headers provided as part of the libxenctrl library.
> >
> > I'm trying to make sure that kernel headers in userspace compile with minimal
> > dependencies which are gcc and libc.
> >
> > For me it is clear by now that many Linux API's and ABI's like Xen parts do
> > not live in the uapi header files and instead there's a separate userspace
> > library with needed headers and defines which have embedded copies of
> > the needed API and ABI definitions, like header files.
> >
> > So how could this file be changed so that it compiles in userspace without
> > definitions from libxenctrl?
>
> I don't think anything needs to be changed.
>
> Instead I would make your compilation check of this header dependent on
> the existence of the xen/interface/xen.h header. Or you may exclude the
> check of this header entirely.
There are not many headers in uapi which require additional userspace
headers to compile (I'm not saying that uapi headers represent the full
API's/ABI's, it's clear they don't). If there are ~700 headers and just a
single one needs an exception and additional dependencies, I would try to
make it work without the dependency. I just need some advice and guidance
from maintainers how to do this.
Or we should start tracking these userspace library dependencies too,
at least at linux-headers package levels in distributions. This might
be a good idea anyway, but then we might as well move headers like this
directly to the userspace library and out of include/uapi.
Both would solve the non-compiling uapi header problem.
> > I guess I could copy the needed definitions for domid_t and xen_pfn_t from
> > xen/interface/xen.h of libxenctrl. That I should have done to begin with
> > instead of trying to hack something on my own.
>
> I do not want definitions duplicated/copied from the hypervisor ABI
> headers. This causes problems when support for new architectures is
> added (for example).
Understood.
-Mikko
> David
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 75/79] include/uapi/xen/privcmd.h: fix compilation in userspace
2015-10-15 11:24 ` David Vrabel
` (2 preceding siblings ...)
(?)
@ 2015-10-15 11:35 ` Mikko Rapeli
-1 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 11:35 UTC (permalink / raw)
To: David Vrabel
Cc: Russell King, linux-api, Stefano Stabellini, linux-kernel,
xen-devel, Boris Ostrovsky, linux-arm-kernel
On Thu, Oct 15, 2015 at 12:24:39PM +0100, David Vrabel wrote:
> On 15/10/15 12:18, Mikko Rapeli wrote:
> > On Thu, Oct 15, 2015 at 11:29:12AM +0100, David Vrabel wrote:
> >> On 15/10/15 06:56, Mikko Rapeli wrote:
> >>> xen/interface/xen.h is not exported from kernel headers so remove the
> >>> dependency and provide needed defines for domid_t and xen_pfn_t if they
> >>> are not already defined by some other e.g. Xen specific headers.
> >>>
> >>> Suggested by Andrew Cooper <andrew.cooper3@citrix.com> on lkml message
> >>> <5569F9C9.8000607@citrix.com>.
> >>>
> >>> The ifdef for ARM is ugly but did not find better solutions for it.
> >>>
> >>> Fixes userspace compilation error:
> >>>
> >>> xen/privcmd.h:38:31: fatal error: xen/interface/xen.h: No such file or directory
> >> [...]
> >>> --- a/include/uapi/xen/privcmd.h
> >>> +++ b/include/uapi/xen/privcmd.h
> >>> @@ -35,7 +35,19 @@
> >>>
> >>> #include <linux/types.h>
> >>> #include <linux/compiler.h>
> >>> -#include <xen/interface/xen.h>
> >>> +
> >>> +/* Might be defined by Xen specific headers, but if not */
> >>> +#ifndef domid_t
> >>> +typedef __u16 domid_t;
> >>> +#endif /* domid_t */
> >>
> >> As the kbuild bot points out, this does not work since the existence of
> >> a typedef cannot be checked with #ifdef.
> >
> > Yeah, this hack doesn't cut it. Sorry. Tried to implement these changes:
> > http://www.spinics.net/lists/linux-api/msg11048.html
> >
> >> I'm not really sure what problem you're trying to solve. A user space
> >> program making use of this interface gets the domid_t and xen_pfn_t etc
> >> typedefs from the headers provided as part of the libxenctrl library.
> >
> > I'm trying to make sure that kernel headers in userspace compile with minimal
> > dependencies which are gcc and libc.
> >
> > For me it is clear by now that many Linux API's and ABI's like Xen parts do
> > not live in the uapi header files and instead there's a separate userspace
> > library with needed headers and defines which have embedded copies of
> > the needed API and ABI definitions, like header files.
> >
> > So how could this file be changed so that it compiles in userspace without
> > definitions from libxenctrl?
>
> I don't think anything needs to be changed.
>
> Instead I would make your compilation check of this header dependent on
> the existence of the xen/interface/xen.h header. Or you may exclude the
> check of this header entirely.
There are not many headers in uapi which require additional userspace
headers to compile (I'm not saying that uapi headers represent the full
API's/ABI's, it's clear they don't). If there are ~700 headers and just a
single one needs an exception and additional dependencies, I would try to
make it work without the dependency. I just need some advice and guidance
from maintainers how to do this.
Or we should start tracking these userspace library dependencies too,
at least at linux-headers package levels in distributions. This might
be a good idea anyway, but then we might as well move headers like this
directly to the userspace library and out of include/uapi.
Both would solve the non-compiling uapi header problem.
> > I guess I could copy the needed definitions for domid_t and xen_pfn_t from
> > xen/interface/xen.h of libxenctrl. That I should have done to begin with
> > instead of trying to hack something on my own.
>
> I do not want definitions duplicated/copied from the hypervisor ABI
> headers. This causes problems when support for new architectures is
> added (for example).
Understood.
-Mikko
> David
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 04/79] drm_mode.h: use __u32 and __u64 from linux/types.h
@ 2015-10-15 13:32 ` Alex Deucher
0 siblings, 0 replies; 206+ messages in thread
From: Alex Deucher @ 2015-10-15 13:32 UTC (permalink / raw)
To: Mikko Rapeli; +Cc: LKML, Maling list - DRI developers, linux-api
On Thu, Oct 15, 2015 at 1:55 AM, Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
> Fixes userspace compilation error:
>
> drm/drm_mode.h:472:2: error: unknown type name ‘uint32_t’
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
NACK on all these type conversions. This has not been a problem for
years and years and the result looks terrible.
Alex
> ---
> include/uapi/drm/drm_mode.h | 16 ++++++++--------
> 1 file changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h
> index 359107a..0ed8d9d 100644
> --- a/include/uapi/drm/drm_mode.h
> +++ b/include/uapi/drm/drm_mode.h
> @@ -508,14 +508,14 @@ struct drm_mode_crtc_page_flip {
>
> /* create a dumb scanout buffer */
> struct drm_mode_create_dumb {
> - uint32_t height;
> - uint32_t width;
> - uint32_t bpp;
> - uint32_t flags;
> + __u32 height;
> + __u32 width;
> + __u32 bpp;
> + __u32 flags;
> /* handle, pitch, size will be returned */
> - uint32_t handle;
> - uint32_t pitch;
> - uint64_t size;
> + __u32 handle;
> + __u32 pitch;
> + __u64 size;
> };
>
> /* set up for mmap of a dumb scanout buffer */
> @@ -532,7 +532,7 @@ struct drm_mode_map_dumb {
> };
>
> struct drm_mode_destroy_dumb {
> - uint32_t handle;
> + __u32 handle;
> };
>
> /* page-flip flags are valid, plus: */
> --
> 2.5.0
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 04/79] drm_mode.h: use __u32 and __u64 from linux/types.h
@ 2015-10-15 13:32 ` Alex Deucher
0 siblings, 0 replies; 206+ messages in thread
From: Alex Deucher @ 2015-10-15 13:32 UTC (permalink / raw)
To: Mikko Rapeli
Cc: LKML, Maling list - DRI developers, linux-api-u79uwXL29TY76Z2rM5mHXA
On Thu, Oct 15, 2015 at 1:55 AM, Mikko Rapeli <mikko.rapeli-X3B1VOXEql0@public.gmane.org> wrote:
> Fixes userspace compilation error:
>
> drm/drm_mode.h:472:2: error: unknown type name ‘uint32_t’
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli-X3B1VOXEql0@public.gmane.org>
NACK on all these type conversions. This has not been a problem for
years and years and the result looks terrible.
Alex
> ---
> include/uapi/drm/drm_mode.h | 16 ++++++++--------
> 1 file changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h
> index 359107a..0ed8d9d 100644
> --- a/include/uapi/drm/drm_mode.h
> +++ b/include/uapi/drm/drm_mode.h
> @@ -508,14 +508,14 @@ struct drm_mode_crtc_page_flip {
>
> /* create a dumb scanout buffer */
> struct drm_mode_create_dumb {
> - uint32_t height;
> - uint32_t width;
> - uint32_t bpp;
> - uint32_t flags;
> + __u32 height;
> + __u32 width;
> + __u32 bpp;
> + __u32 flags;
> /* handle, pitch, size will be returned */
> - uint32_t handle;
> - uint32_t pitch;
> - uint64_t size;
> + __u32 handle;
> + __u32 pitch;
> + __u64 size;
> };
>
> /* set up for mmap of a dumb scanout buffer */
> @@ -532,7 +532,7 @@ struct drm_mode_map_dumb {
> };
>
> struct drm_mode_destroy_dumb {
> - uint32_t handle;
> + __u32 handle;
> };
>
> /* page-flip flags are valid, plus: */
> --
> 2.5.0
>
> _______________________________________________
> dri-devel mailing list
> dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 04/79] drm_mode.h: use __u32 and __u64 from linux/types.h
2015-10-15 13:32 ` Alex Deucher
@ 2015-10-15 13:48 ` Mikko Rapeli
-1 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 13:48 UTC (permalink / raw)
To: Alex Deucher; +Cc: LKML, Maling list - DRI developers, linux-api
On Thu, Oct 15, 2015 at 09:32:10AM -0400, Alex Deucher wrote:
> On Thu, Oct 15, 2015 at 1:55 AM, Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
> > Fixes userspace compilation error:
> >
> > drm/drm_mode.h:472:2: error: unknown type name ‘uint32_t’
> >
> > Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
>
> NACK on all these type conversions. This has not been a problem for
> years and years and the result looks terrible.
Documentation/CodingStyle, section 5
(e) Types safe for use in userspace.
In certain structures which are visible to userspace, we cannot
require C99 types and cannot use the 'u32' form above. Thus, we
use __u32 and similar types in all structures which are shared
with userspace.
I have only been looking at kernel headers from userspace occationally in
the past 10 years and had a several cases where the provided headers did
not compile when included into trivial programs trying to use the structs
for an ioctl() for example. This long lasting problem triggered me to write
a test for this and provide these fixes too. In previous reviews usage
of <stdint.h> and its types in kernel headers was already NACK'ed
so I changed several places from uint32_t's to __u32.
With these changes it is btw trivial now to add a grep test the there
are no uint32_t's in include/uapi/ anymore, thus enforcing that coding style
rule.
-Mikko
> Alex
>
> > ---
> > include/uapi/drm/drm_mode.h | 16 ++++++++--------
> > 1 file changed, 8 insertions(+), 8 deletions(-)
> >
> > diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h
> > index 359107a..0ed8d9d 100644
> > --- a/include/uapi/drm/drm_mode.h
> > +++ b/include/uapi/drm/drm_mode.h
> > @@ -508,14 +508,14 @@ struct drm_mode_crtc_page_flip {
> >
> > /* create a dumb scanout buffer */
> > struct drm_mode_create_dumb {
> > - uint32_t height;
> > - uint32_t width;
> > - uint32_t bpp;
> > - uint32_t flags;
> > + __u32 height;
> > + __u32 width;
> > + __u32 bpp;
> > + __u32 flags;
> > /* handle, pitch, size will be returned */
> > - uint32_t handle;
> > - uint32_t pitch;
> > - uint64_t size;
> > + __u32 handle;
> > + __u32 pitch;
> > + __u64 size;
> > };
> >
> > /* set up for mmap of a dumb scanout buffer */
> > @@ -532,7 +532,7 @@ struct drm_mode_map_dumb {
> > };
> >
> > struct drm_mode_destroy_dumb {
> > - uint32_t handle;
> > + __u32 handle;
> > };
> >
> > /* page-flip flags are valid, plus: */
> > --
> > 2.5.0
> >
> > _______________________________________________
> > dri-devel mailing list
> > dri-devel@lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 04/79] drm_mode.h: use __u32 and __u64 from linux/types.h
@ 2015-10-15 13:48 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 13:48 UTC (permalink / raw)
To: Alex Deucher; +Cc: linux-api, LKML, Maling list - DRI developers
On Thu, Oct 15, 2015 at 09:32:10AM -0400, Alex Deucher wrote:
> On Thu, Oct 15, 2015 at 1:55 AM, Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
> > Fixes userspace compilation error:
> >
> > drm/drm_mode.h:472:2: error: unknown type name ‘uint32_t’
> >
> > Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
>
> NACK on all these type conversions. This has not been a problem for
> years and years and the result looks terrible.
Documentation/CodingStyle, section 5
(e) Types safe for use in userspace.
In certain structures which are visible to userspace, we cannot
require C99 types and cannot use the 'u32' form above. Thus, we
use __u32 and similar types in all structures which are shared
with userspace.
I have only been looking at kernel headers from userspace occationally in
the past 10 years and had a several cases where the provided headers did
not compile when included into trivial programs trying to use the structs
for an ioctl() for example. This long lasting problem triggered me to write
a test for this and provide these fixes too. In previous reviews usage
of <stdint.h> and its types in kernel headers was already NACK'ed
so I changed several places from uint32_t's to __u32.
With these changes it is btw trivial now to add a grep test the there
are no uint32_t's in include/uapi/ anymore, thus enforcing that coding style
rule.
-Mikko
> Alex
>
> > ---
> > include/uapi/drm/drm_mode.h | 16 ++++++++--------
> > 1 file changed, 8 insertions(+), 8 deletions(-)
> >
> > diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h
> > index 359107a..0ed8d9d 100644
> > --- a/include/uapi/drm/drm_mode.h
> > +++ b/include/uapi/drm/drm_mode.h
> > @@ -508,14 +508,14 @@ struct drm_mode_crtc_page_flip {
> >
> > /* create a dumb scanout buffer */
> > struct drm_mode_create_dumb {
> > - uint32_t height;
> > - uint32_t width;
> > - uint32_t bpp;
> > - uint32_t flags;
> > + __u32 height;
> > + __u32 width;
> > + __u32 bpp;
> > + __u32 flags;
> > /* handle, pitch, size will be returned */
> > - uint32_t handle;
> > - uint32_t pitch;
> > - uint64_t size;
> > + __u32 handle;
> > + __u32 pitch;
> > + __u64 size;
> > };
> >
> > /* set up for mmap of a dumb scanout buffer */
> > @@ -532,7 +532,7 @@ struct drm_mode_map_dumb {
> > };
> >
> > struct drm_mode_destroy_dumb {
> > - uint32_t handle;
> > + __u32 handle;
> > };
> >
> > /* page-flip flags are valid, plus: */
> > --
> > 2.5.0
> >
> > _______________________________________________
> > dri-devel mailing list
> > dri-devel@lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/dri-devel
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 71/79] include/uapi/linux/fuse.h: use linux/types.h also in userspace
@ 2015-10-15 15:20 ` Miklos Szeredi
0 siblings, 0 replies; 206+ messages in thread
From: Miklos Szeredi @ 2015-10-15 15:20 UTC (permalink / raw)
To: Mikko Rapeli; +Cc: Kernel Mailing List, fuse-devel, Linux API
On Thu, Oct 15, 2015 at 7:56 AM, Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
> Kernel headers should not use stdint.h.
Including <linux/types.h> breaks compile of library on non-Linux
archs. Allowing this patch would mean having a different header in
the fuse lib as the one in the kernel. This is useless complexity and
a source of bugs. We've already been there, and much prefer the
current state.
NAK.
Thanks,
Miklos
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
> ---
> include/uapi/linux/fuse.h | 440 +++++++++++++++++++++++-----------------------
> 1 file changed, 218 insertions(+), 222 deletions(-)
>
> diff --git a/include/uapi/linux/fuse.h b/include/uapi/linux/fuse.h
> index c9aca04..a25e329 100644
> --- a/include/uapi/linux/fuse.h
> +++ b/include/uapi/linux/fuse.h
> @@ -107,11 +107,7 @@
> #ifndef _LINUX_FUSE_H
> #define _LINUX_FUSE_H
>
> -#ifdef __KERNEL__
> #include <linux/types.h>
> -#else
> -#include <stdint.h>
> -#endif
>
> /*
> * Version negotiation:
> @@ -146,42 +142,42 @@
> userspace works under 64bit kernels */
>
> struct fuse_attr {
> - uint64_t ino;
> - uint64_t size;
> - uint64_t blocks;
> - uint64_t atime;
> - uint64_t mtime;
> - uint64_t ctime;
> - uint32_t atimensec;
> - uint32_t mtimensec;
> - uint32_t ctimensec;
> - uint32_t mode;
> - uint32_t nlink;
> - uint32_t uid;
> - uint32_t gid;
> - uint32_t rdev;
> - uint32_t blksize;
> - uint32_t padding;
> + __u64 ino;
> + __u64 size;
> + __u64 blocks;
> + __u64 atime;
> + __u64 mtime;
> + __u64 ctime;
> + __u32 atimensec;
> + __u32 mtimensec;
> + __u32 ctimensec;
> + __u32 mode;
> + __u32 nlink;
> + __u32 uid;
> + __u32 gid;
> + __u32 rdev;
> + __u32 blksize;
> + __u32 padding;
> };
>
> struct fuse_kstatfs {
> - uint64_t blocks;
> - uint64_t bfree;
> - uint64_t bavail;
> - uint64_t files;
> - uint64_t ffree;
> - uint32_t bsize;
> - uint32_t namelen;
> - uint32_t frsize;
> - uint32_t padding;
> - uint32_t spare[6];
> + __u64 blocks;
> + __u64 bfree;
> + __u64 bavail;
> + __u64 files;
> + __u64 ffree;
> + __u32 bsize;
> + __u32 namelen;
> + __u32 frsize;
> + __u32 padding;
> + __u32 spare[6];
> };
>
> struct fuse_file_lock {
> - uint64_t start;
> - uint64_t end;
> - uint32_t type;
> - uint32_t pid; /* tgid */
> + __u64 start;
> + __u64 end;
> + __u32 type;
> + __u32 pid; /* tgid */
> };
>
> /**
> @@ -379,149 +375,149 @@ enum fuse_notify_code {
> #define FUSE_COMPAT_ENTRY_OUT_SIZE 120
>
> struct fuse_entry_out {
> - uint64_t nodeid; /* Inode ID */
> - uint64_t generation; /* Inode generation: nodeid:gen must
> + __u64 nodeid; /* Inode ID */
> + __u64 generation; /* Inode generation: nodeid:gen must
> be unique for the fs's lifetime */
> - uint64_t entry_valid; /* Cache timeout for the name */
> - uint64_t attr_valid; /* Cache timeout for the attributes */
> - uint32_t entry_valid_nsec;
> - uint32_t attr_valid_nsec;
> + __u64 entry_valid; /* Cache timeout for the name */
> + __u64 attr_valid; /* Cache timeout for the attributes */
> + __u32 entry_valid_nsec;
> + __u32 attr_valid_nsec;
> struct fuse_attr attr;
> };
>
> struct fuse_forget_in {
> - uint64_t nlookup;
> + __u64 nlookup;
> };
>
> struct fuse_forget_one {
> - uint64_t nodeid;
> - uint64_t nlookup;
> + __u64 nodeid;
> + __u64 nlookup;
> };
>
> struct fuse_batch_forget_in {
> - uint32_t count;
> - uint32_t dummy;
> + __u32 count;
> + __u32 dummy;
> };
>
> struct fuse_getattr_in {
> - uint32_t getattr_flags;
> - uint32_t dummy;
> - uint64_t fh;
> + __u32 getattr_flags;
> + __u32 dummy;
> + __u64 fh;
> };
>
> #define FUSE_COMPAT_ATTR_OUT_SIZE 96
>
> struct fuse_attr_out {
> - uint64_t attr_valid; /* Cache timeout for the attributes */
> - uint32_t attr_valid_nsec;
> - uint32_t dummy;
> + __u64 attr_valid; /* Cache timeout for the attributes */
> + __u32 attr_valid_nsec;
> + __u32 dummy;
> struct fuse_attr attr;
> };
>
> #define FUSE_COMPAT_MKNOD_IN_SIZE 8
>
> struct fuse_mknod_in {
> - uint32_t mode;
> - uint32_t rdev;
> - uint32_t umask;
> - uint32_t padding;
> + __u32 mode;
> + __u32 rdev;
> + __u32 umask;
> + __u32 padding;
> };
>
> struct fuse_mkdir_in {
> - uint32_t mode;
> - uint32_t umask;
> + __u32 mode;
> + __u32 umask;
> };
>
> struct fuse_rename_in {
> - uint64_t newdir;
> + __u64 newdir;
> };
>
> struct fuse_rename2_in {
> - uint64_t newdir;
> - uint32_t flags;
> - uint32_t padding;
> + __u64 newdir;
> + __u32 flags;
> + __u32 padding;
> };
>
> struct fuse_link_in {
> - uint64_t oldnodeid;
> + __u64 oldnodeid;
> };
>
> struct fuse_setattr_in {
> - uint32_t valid;
> - uint32_t padding;
> - uint64_t fh;
> - uint64_t size;
> - uint64_t lock_owner;
> - uint64_t atime;
> - uint64_t mtime;
> - uint64_t ctime;
> - uint32_t atimensec;
> - uint32_t mtimensec;
> - uint32_t ctimensec;
> - uint32_t mode;
> - uint32_t unused4;
> - uint32_t uid;
> - uint32_t gid;
> - uint32_t unused5;
> + __u32 valid;
> + __u32 padding;
> + __u64 fh;
> + __u64 size;
> + __u64 lock_owner;
> + __u64 atime;
> + __u64 mtime;
> + __u64 ctime;
> + __u32 atimensec;
> + __u32 mtimensec;
> + __u32 ctimensec;
> + __u32 mode;
> + __u32 unused4;
> + __u32 uid;
> + __u32 gid;
> + __u32 unused5;
> };
>
> struct fuse_open_in {
> - uint32_t flags;
> - uint32_t unused;
> + __u32 flags;
> + __u32 unused;
> };
>
> struct fuse_create_in {
> - uint32_t flags;
> - uint32_t mode;
> - uint32_t umask;
> - uint32_t padding;
> + __u32 flags;
> + __u32 mode;
> + __u32 umask;
> + __u32 padding;
> };
>
> struct fuse_open_out {
> - uint64_t fh;
> - uint32_t open_flags;
> - uint32_t padding;
> + __u64 fh;
> + __u32 open_flags;
> + __u32 padding;
> };
>
> struct fuse_release_in {
> - uint64_t fh;
> - uint32_t flags;
> - uint32_t release_flags;
> - uint64_t lock_owner;
> + __u64 fh;
> + __u32 flags;
> + __u32 release_flags;
> + __u64 lock_owner;
> };
>
> struct fuse_flush_in {
> - uint64_t fh;
> - uint32_t unused;
> - uint32_t padding;
> - uint64_t lock_owner;
> + __u64 fh;
> + __u32 unused;
> + __u32 padding;
> + __u64 lock_owner;
> };
>
> struct fuse_read_in {
> - uint64_t fh;
> - uint64_t offset;
> - uint32_t size;
> - uint32_t read_flags;
> - uint64_t lock_owner;
> - uint32_t flags;
> - uint32_t padding;
> + __u64 fh;
> + __u64 offset;
> + __u32 size;
> + __u32 read_flags;
> + __u64 lock_owner;
> + __u32 flags;
> + __u32 padding;
> };
>
> #define FUSE_COMPAT_WRITE_IN_SIZE 24
>
> struct fuse_write_in {
> - uint64_t fh;
> - uint64_t offset;
> - uint32_t size;
> - uint32_t write_flags;
> - uint64_t lock_owner;
> - uint32_t flags;
> - uint32_t padding;
> + __u64 fh;
> + __u64 offset;
> + __u32 size;
> + __u32 write_flags;
> + __u64 lock_owner;
> + __u32 flags;
> + __u32 padding;
> };
>
> struct fuse_write_out {
> - uint32_t size;
> - uint32_t padding;
> + __u32 size;
> + __u32 padding;
> };
>
> #define FUSE_COMPAT_STATFS_SIZE 48
> @@ -531,32 +527,32 @@ struct fuse_statfs_out {
> };
>
> struct fuse_fsync_in {
> - uint64_t fh;
> - uint32_t fsync_flags;
> - uint32_t padding;
> + __u64 fh;
> + __u32 fsync_flags;
> + __u32 padding;
> };
>
> struct fuse_setxattr_in {
> - uint32_t size;
> - uint32_t flags;
> + __u32 size;
> + __u32 flags;
> };
>
> struct fuse_getxattr_in {
> - uint32_t size;
> - uint32_t padding;
> + __u32 size;
> + __u32 padding;
> };
>
> struct fuse_getxattr_out {
> - uint32_t size;
> - uint32_t padding;
> + __u32 size;
> + __u32 padding;
> };
>
> struct fuse_lk_in {
> - uint64_t fh;
> - uint64_t owner;
> + __u64 fh;
> + __u64 owner;
> struct fuse_file_lock lk;
> - uint32_t lk_flags;
> - uint32_t padding;
> + __u32 lk_flags;
> + __u32 padding;
> };
>
> struct fuse_lk_out {
> @@ -564,140 +560,140 @@ struct fuse_lk_out {
> };
>
> struct fuse_access_in {
> - uint32_t mask;
> - uint32_t padding;
> + __u32 mask;
> + __u32 padding;
> };
>
> struct fuse_init_in {
> - uint32_t major;
> - uint32_t minor;
> - uint32_t max_readahead;
> - uint32_t flags;
> + __u32 major;
> + __u32 minor;
> + __u32 max_readahead;
> + __u32 flags;
> };
>
> #define FUSE_COMPAT_INIT_OUT_SIZE 8
> #define FUSE_COMPAT_22_INIT_OUT_SIZE 24
>
> struct fuse_init_out {
> - uint32_t major;
> - uint32_t minor;
> - uint32_t max_readahead;
> - uint32_t flags;
> - uint16_t max_background;
> - uint16_t congestion_threshold;
> - uint32_t max_write;
> - uint32_t time_gran;
> - uint32_t unused[9];
> + __u32 major;
> + __u32 minor;
> + __u32 max_readahead;
> + __u32 flags;
> + __u16 max_background;
> + __u16 congestion_threshold;
> + __u32 max_write;
> + __u32 time_gran;
> + __u32 unused[9];
> };
>
> #define CUSE_INIT_INFO_MAX 4096
>
> struct cuse_init_in {
> - uint32_t major;
> - uint32_t minor;
> - uint32_t unused;
> - uint32_t flags;
> + __u32 major;
> + __u32 minor;
> + __u32 unused;
> + __u32 flags;
> };
>
> struct cuse_init_out {
> - uint32_t major;
> - uint32_t minor;
> - uint32_t unused;
> - uint32_t flags;
> - uint32_t max_read;
> - uint32_t max_write;
> - uint32_t dev_major; /* chardev major */
> - uint32_t dev_minor; /* chardev minor */
> - uint32_t spare[10];
> + __u32 major;
> + __u32 minor;
> + __u32 unused;
> + __u32 flags;
> + __u32 max_read;
> + __u32 max_write;
> + __u32 dev_major; /* chardev major */
> + __u32 dev_minor; /* chardev minor */
> + __u32 spare[10];
> };
>
> struct fuse_interrupt_in {
> - uint64_t unique;
> + __u64 unique;
> };
>
> struct fuse_bmap_in {
> - uint64_t block;
> - uint32_t blocksize;
> - uint32_t padding;
> + __u64 block;
> + __u32 blocksize;
> + __u32 padding;
> };
>
> struct fuse_bmap_out {
> - uint64_t block;
> + __u64 block;
> };
>
> struct fuse_ioctl_in {
> - uint64_t fh;
> - uint32_t flags;
> - uint32_t cmd;
> - uint64_t arg;
> - uint32_t in_size;
> - uint32_t out_size;
> + __u64 fh;
> + __u32 flags;
> + __u32 cmd;
> + __u64 arg;
> + __u32 in_size;
> + __u32 out_size;
> };
>
> struct fuse_ioctl_iovec {
> - uint64_t base;
> - uint64_t len;
> + __u64 base;
> + __u64 len;
> };
>
> struct fuse_ioctl_out {
> - int32_t result;
> - uint32_t flags;
> - uint32_t in_iovs;
> - uint32_t out_iovs;
> + __s32 result;
> + __u32 flags;
> + __u32 in_iovs;
> + __u32 out_iovs;
> };
>
> struct fuse_poll_in {
> - uint64_t fh;
> - uint64_t kh;
> - uint32_t flags;
> - uint32_t events;
> + __u64 fh;
> + __u64 kh;
> + __u32 flags;
> + __u32 events;
> };
>
> struct fuse_poll_out {
> - uint32_t revents;
> - uint32_t padding;
> + __u32 revents;
> + __u32 padding;
> };
>
> struct fuse_notify_poll_wakeup_out {
> - uint64_t kh;
> + __u64 kh;
> };
>
> struct fuse_fallocate_in {
> - uint64_t fh;
> - uint64_t offset;
> - uint64_t length;
> - uint32_t mode;
> - uint32_t padding;
> + __u64 fh;
> + __u64 offset;
> + __u64 length;
> + __u32 mode;
> + __u32 padding;
> };
>
> struct fuse_in_header {
> - uint32_t len;
> - uint32_t opcode;
> - uint64_t unique;
> - uint64_t nodeid;
> - uint32_t uid;
> - uint32_t gid;
> - uint32_t pid;
> - uint32_t padding;
> + __u32 len;
> + __u32 opcode;
> + __u64 unique;
> + __u64 nodeid;
> + __u32 uid;
> + __u32 gid;
> + __u32 pid;
> + __u32 padding;
> };
>
> struct fuse_out_header {
> - uint32_t len;
> - int32_t error;
> - uint64_t unique;
> + __u32 len;
> + __s32 error;
> + __u64 unique;
> };
>
> struct fuse_dirent {
> - uint64_t ino;
> - uint64_t off;
> - uint32_t namelen;
> - uint32_t type;
> + __u64 ino;
> + __u64 off;
> + __u32 namelen;
> + __u32 type;
> char name[];
> };
>
> #define FUSE_NAME_OFFSET offsetof(struct fuse_dirent, name)
> #define FUSE_DIRENT_ALIGN(x) \
> - (((x) + sizeof(uint64_t) - 1) & ~(sizeof(uint64_t) - 1))
> + (((x) + sizeof(__u64) - 1) & ~(sizeof(__u64) - 1))
> #define FUSE_DIRENT_SIZE(d) \
> FUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET + (d)->namelen)
>
> @@ -712,47 +708,47 @@ struct fuse_direntplus {
> FUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET_DIRENTPLUS + (d)->dirent.namelen)
>
> struct fuse_notify_inval_inode_out {
> - uint64_t ino;
> - int64_t off;
> - int64_t len;
> + __u64 ino;
> + __s64 off;
> + __s64 len;
> };
>
> struct fuse_notify_inval_entry_out {
> - uint64_t parent;
> - uint32_t namelen;
> - uint32_t padding;
> + __u64 parent;
> + __u32 namelen;
> + __u32 padding;
> };
>
> struct fuse_notify_delete_out {
> - uint64_t parent;
> - uint64_t child;
> - uint32_t namelen;
> - uint32_t padding;
> + __u64 parent;
> + __u64 child;
> + __u32 namelen;
> + __u32 padding;
> };
>
> struct fuse_notify_store_out {
> - uint64_t nodeid;
> - uint64_t offset;
> - uint32_t size;
> - uint32_t padding;
> + __u64 nodeid;
> + __u64 offset;
> + __u32 size;
> + __u32 padding;
> };
>
> struct fuse_notify_retrieve_out {
> - uint64_t notify_unique;
> - uint64_t nodeid;
> - uint64_t offset;
> - uint32_t size;
> - uint32_t padding;
> + __u64 notify_unique;
> + __u64 nodeid;
> + __u64 offset;
> + __u32 size;
> + __u32 padding;
> };
>
> /* Matches the size of fuse_write_in */
> struct fuse_notify_retrieve_in {
> - uint64_t dummy1;
> - uint64_t offset;
> - uint32_t size;
> - uint32_t dummy2;
> - uint64_t dummy3;
> - uint64_t dummy4;
> + __u64 dummy1;
> + __u64 offset;
> + __u32 size;
> + __u32 dummy2;
> + __u64 dummy3;
> + __u64 dummy4;
> };
>
> /* Device ioctls: */
> --
> 2.5.0
>
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 71/79] include/uapi/linux/fuse.h: use linux/types.h also in userspace
@ 2015-10-15 15:20 ` Miklos Szeredi
0 siblings, 0 replies; 206+ messages in thread
From: Miklos Szeredi @ 2015-10-15 15:20 UTC (permalink / raw)
To: Mikko Rapeli; +Cc: Kernel Mailing List, fuse-devel, Linux API
On Thu, Oct 15, 2015 at 7:56 AM, Mikko Rapeli <mikko.rapeli-X3B1VOXEql0@public.gmane.org> wrote:
> Kernel headers should not use stdint.h.
Including <linux/types.h> breaks compile of library on non-Linux
archs. Allowing this patch would mean having a different header in
the fuse lib as the one in the kernel. This is useless complexity and
a source of bugs. We've already been there, and much prefer the
current state.
NAK.
Thanks,
Miklos
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli-X3B1VOXEql0@public.gmane.org>
> ---
> include/uapi/linux/fuse.h | 440 +++++++++++++++++++++++-----------------------
> 1 file changed, 218 insertions(+), 222 deletions(-)
>
> diff --git a/include/uapi/linux/fuse.h b/include/uapi/linux/fuse.h
> index c9aca04..a25e329 100644
> --- a/include/uapi/linux/fuse.h
> +++ b/include/uapi/linux/fuse.h
> @@ -107,11 +107,7 @@
> #ifndef _LINUX_FUSE_H
> #define _LINUX_FUSE_H
>
> -#ifdef __KERNEL__
> #include <linux/types.h>
> -#else
> -#include <stdint.h>
> -#endif
>
> /*
> * Version negotiation:
> @@ -146,42 +142,42 @@
> userspace works under 64bit kernels */
>
> struct fuse_attr {
> - uint64_t ino;
> - uint64_t size;
> - uint64_t blocks;
> - uint64_t atime;
> - uint64_t mtime;
> - uint64_t ctime;
> - uint32_t atimensec;
> - uint32_t mtimensec;
> - uint32_t ctimensec;
> - uint32_t mode;
> - uint32_t nlink;
> - uint32_t uid;
> - uint32_t gid;
> - uint32_t rdev;
> - uint32_t blksize;
> - uint32_t padding;
> + __u64 ino;
> + __u64 size;
> + __u64 blocks;
> + __u64 atime;
> + __u64 mtime;
> + __u64 ctime;
> + __u32 atimensec;
> + __u32 mtimensec;
> + __u32 ctimensec;
> + __u32 mode;
> + __u32 nlink;
> + __u32 uid;
> + __u32 gid;
> + __u32 rdev;
> + __u32 blksize;
> + __u32 padding;
> };
>
> struct fuse_kstatfs {
> - uint64_t blocks;
> - uint64_t bfree;
> - uint64_t bavail;
> - uint64_t files;
> - uint64_t ffree;
> - uint32_t bsize;
> - uint32_t namelen;
> - uint32_t frsize;
> - uint32_t padding;
> - uint32_t spare[6];
> + __u64 blocks;
> + __u64 bfree;
> + __u64 bavail;
> + __u64 files;
> + __u64 ffree;
> + __u32 bsize;
> + __u32 namelen;
> + __u32 frsize;
> + __u32 padding;
> + __u32 spare[6];
> };
>
> struct fuse_file_lock {
> - uint64_t start;
> - uint64_t end;
> - uint32_t type;
> - uint32_t pid; /* tgid */
> + __u64 start;
> + __u64 end;
> + __u32 type;
> + __u32 pid; /* tgid */
> };
>
> /**
> @@ -379,149 +375,149 @@ enum fuse_notify_code {
> #define FUSE_COMPAT_ENTRY_OUT_SIZE 120
>
> struct fuse_entry_out {
> - uint64_t nodeid; /* Inode ID */
> - uint64_t generation; /* Inode generation: nodeid:gen must
> + __u64 nodeid; /* Inode ID */
> + __u64 generation; /* Inode generation: nodeid:gen must
> be unique for the fs's lifetime */
> - uint64_t entry_valid; /* Cache timeout for the name */
> - uint64_t attr_valid; /* Cache timeout for the attributes */
> - uint32_t entry_valid_nsec;
> - uint32_t attr_valid_nsec;
> + __u64 entry_valid; /* Cache timeout for the name */
> + __u64 attr_valid; /* Cache timeout for the attributes */
> + __u32 entry_valid_nsec;
> + __u32 attr_valid_nsec;
> struct fuse_attr attr;
> };
>
> struct fuse_forget_in {
> - uint64_t nlookup;
> + __u64 nlookup;
> };
>
> struct fuse_forget_one {
> - uint64_t nodeid;
> - uint64_t nlookup;
> + __u64 nodeid;
> + __u64 nlookup;
> };
>
> struct fuse_batch_forget_in {
> - uint32_t count;
> - uint32_t dummy;
> + __u32 count;
> + __u32 dummy;
> };
>
> struct fuse_getattr_in {
> - uint32_t getattr_flags;
> - uint32_t dummy;
> - uint64_t fh;
> + __u32 getattr_flags;
> + __u32 dummy;
> + __u64 fh;
> };
>
> #define FUSE_COMPAT_ATTR_OUT_SIZE 96
>
> struct fuse_attr_out {
> - uint64_t attr_valid; /* Cache timeout for the attributes */
> - uint32_t attr_valid_nsec;
> - uint32_t dummy;
> + __u64 attr_valid; /* Cache timeout for the attributes */
> + __u32 attr_valid_nsec;
> + __u32 dummy;
> struct fuse_attr attr;
> };
>
> #define FUSE_COMPAT_MKNOD_IN_SIZE 8
>
> struct fuse_mknod_in {
> - uint32_t mode;
> - uint32_t rdev;
> - uint32_t umask;
> - uint32_t padding;
> + __u32 mode;
> + __u32 rdev;
> + __u32 umask;
> + __u32 padding;
> };
>
> struct fuse_mkdir_in {
> - uint32_t mode;
> - uint32_t umask;
> + __u32 mode;
> + __u32 umask;
> };
>
> struct fuse_rename_in {
> - uint64_t newdir;
> + __u64 newdir;
> };
>
> struct fuse_rename2_in {
> - uint64_t newdir;
> - uint32_t flags;
> - uint32_t padding;
> + __u64 newdir;
> + __u32 flags;
> + __u32 padding;
> };
>
> struct fuse_link_in {
> - uint64_t oldnodeid;
> + __u64 oldnodeid;
> };
>
> struct fuse_setattr_in {
> - uint32_t valid;
> - uint32_t padding;
> - uint64_t fh;
> - uint64_t size;
> - uint64_t lock_owner;
> - uint64_t atime;
> - uint64_t mtime;
> - uint64_t ctime;
> - uint32_t atimensec;
> - uint32_t mtimensec;
> - uint32_t ctimensec;
> - uint32_t mode;
> - uint32_t unused4;
> - uint32_t uid;
> - uint32_t gid;
> - uint32_t unused5;
> + __u32 valid;
> + __u32 padding;
> + __u64 fh;
> + __u64 size;
> + __u64 lock_owner;
> + __u64 atime;
> + __u64 mtime;
> + __u64 ctime;
> + __u32 atimensec;
> + __u32 mtimensec;
> + __u32 ctimensec;
> + __u32 mode;
> + __u32 unused4;
> + __u32 uid;
> + __u32 gid;
> + __u32 unused5;
> };
>
> struct fuse_open_in {
> - uint32_t flags;
> - uint32_t unused;
> + __u32 flags;
> + __u32 unused;
> };
>
> struct fuse_create_in {
> - uint32_t flags;
> - uint32_t mode;
> - uint32_t umask;
> - uint32_t padding;
> + __u32 flags;
> + __u32 mode;
> + __u32 umask;
> + __u32 padding;
> };
>
> struct fuse_open_out {
> - uint64_t fh;
> - uint32_t open_flags;
> - uint32_t padding;
> + __u64 fh;
> + __u32 open_flags;
> + __u32 padding;
> };
>
> struct fuse_release_in {
> - uint64_t fh;
> - uint32_t flags;
> - uint32_t release_flags;
> - uint64_t lock_owner;
> + __u64 fh;
> + __u32 flags;
> + __u32 release_flags;
> + __u64 lock_owner;
> };
>
> struct fuse_flush_in {
> - uint64_t fh;
> - uint32_t unused;
> - uint32_t padding;
> - uint64_t lock_owner;
> + __u64 fh;
> + __u32 unused;
> + __u32 padding;
> + __u64 lock_owner;
> };
>
> struct fuse_read_in {
> - uint64_t fh;
> - uint64_t offset;
> - uint32_t size;
> - uint32_t read_flags;
> - uint64_t lock_owner;
> - uint32_t flags;
> - uint32_t padding;
> + __u64 fh;
> + __u64 offset;
> + __u32 size;
> + __u32 read_flags;
> + __u64 lock_owner;
> + __u32 flags;
> + __u32 padding;
> };
>
> #define FUSE_COMPAT_WRITE_IN_SIZE 24
>
> struct fuse_write_in {
> - uint64_t fh;
> - uint64_t offset;
> - uint32_t size;
> - uint32_t write_flags;
> - uint64_t lock_owner;
> - uint32_t flags;
> - uint32_t padding;
> + __u64 fh;
> + __u64 offset;
> + __u32 size;
> + __u32 write_flags;
> + __u64 lock_owner;
> + __u32 flags;
> + __u32 padding;
> };
>
> struct fuse_write_out {
> - uint32_t size;
> - uint32_t padding;
> + __u32 size;
> + __u32 padding;
> };
>
> #define FUSE_COMPAT_STATFS_SIZE 48
> @@ -531,32 +527,32 @@ struct fuse_statfs_out {
> };
>
> struct fuse_fsync_in {
> - uint64_t fh;
> - uint32_t fsync_flags;
> - uint32_t padding;
> + __u64 fh;
> + __u32 fsync_flags;
> + __u32 padding;
> };
>
> struct fuse_setxattr_in {
> - uint32_t size;
> - uint32_t flags;
> + __u32 size;
> + __u32 flags;
> };
>
> struct fuse_getxattr_in {
> - uint32_t size;
> - uint32_t padding;
> + __u32 size;
> + __u32 padding;
> };
>
> struct fuse_getxattr_out {
> - uint32_t size;
> - uint32_t padding;
> + __u32 size;
> + __u32 padding;
> };
>
> struct fuse_lk_in {
> - uint64_t fh;
> - uint64_t owner;
> + __u64 fh;
> + __u64 owner;
> struct fuse_file_lock lk;
> - uint32_t lk_flags;
> - uint32_t padding;
> + __u32 lk_flags;
> + __u32 padding;
> };
>
> struct fuse_lk_out {
> @@ -564,140 +560,140 @@ struct fuse_lk_out {
> };
>
> struct fuse_access_in {
> - uint32_t mask;
> - uint32_t padding;
> + __u32 mask;
> + __u32 padding;
> };
>
> struct fuse_init_in {
> - uint32_t major;
> - uint32_t minor;
> - uint32_t max_readahead;
> - uint32_t flags;
> + __u32 major;
> + __u32 minor;
> + __u32 max_readahead;
> + __u32 flags;
> };
>
> #define FUSE_COMPAT_INIT_OUT_SIZE 8
> #define FUSE_COMPAT_22_INIT_OUT_SIZE 24
>
> struct fuse_init_out {
> - uint32_t major;
> - uint32_t minor;
> - uint32_t max_readahead;
> - uint32_t flags;
> - uint16_t max_background;
> - uint16_t congestion_threshold;
> - uint32_t max_write;
> - uint32_t time_gran;
> - uint32_t unused[9];
> + __u32 major;
> + __u32 minor;
> + __u32 max_readahead;
> + __u32 flags;
> + __u16 max_background;
> + __u16 congestion_threshold;
> + __u32 max_write;
> + __u32 time_gran;
> + __u32 unused[9];
> };
>
> #define CUSE_INIT_INFO_MAX 4096
>
> struct cuse_init_in {
> - uint32_t major;
> - uint32_t minor;
> - uint32_t unused;
> - uint32_t flags;
> + __u32 major;
> + __u32 minor;
> + __u32 unused;
> + __u32 flags;
> };
>
> struct cuse_init_out {
> - uint32_t major;
> - uint32_t minor;
> - uint32_t unused;
> - uint32_t flags;
> - uint32_t max_read;
> - uint32_t max_write;
> - uint32_t dev_major; /* chardev major */
> - uint32_t dev_minor; /* chardev minor */
> - uint32_t spare[10];
> + __u32 major;
> + __u32 minor;
> + __u32 unused;
> + __u32 flags;
> + __u32 max_read;
> + __u32 max_write;
> + __u32 dev_major; /* chardev major */
> + __u32 dev_minor; /* chardev minor */
> + __u32 spare[10];
> };
>
> struct fuse_interrupt_in {
> - uint64_t unique;
> + __u64 unique;
> };
>
> struct fuse_bmap_in {
> - uint64_t block;
> - uint32_t blocksize;
> - uint32_t padding;
> + __u64 block;
> + __u32 blocksize;
> + __u32 padding;
> };
>
> struct fuse_bmap_out {
> - uint64_t block;
> + __u64 block;
> };
>
> struct fuse_ioctl_in {
> - uint64_t fh;
> - uint32_t flags;
> - uint32_t cmd;
> - uint64_t arg;
> - uint32_t in_size;
> - uint32_t out_size;
> + __u64 fh;
> + __u32 flags;
> + __u32 cmd;
> + __u64 arg;
> + __u32 in_size;
> + __u32 out_size;
> };
>
> struct fuse_ioctl_iovec {
> - uint64_t base;
> - uint64_t len;
> + __u64 base;
> + __u64 len;
> };
>
> struct fuse_ioctl_out {
> - int32_t result;
> - uint32_t flags;
> - uint32_t in_iovs;
> - uint32_t out_iovs;
> + __s32 result;
> + __u32 flags;
> + __u32 in_iovs;
> + __u32 out_iovs;
> };
>
> struct fuse_poll_in {
> - uint64_t fh;
> - uint64_t kh;
> - uint32_t flags;
> - uint32_t events;
> + __u64 fh;
> + __u64 kh;
> + __u32 flags;
> + __u32 events;
> };
>
> struct fuse_poll_out {
> - uint32_t revents;
> - uint32_t padding;
> + __u32 revents;
> + __u32 padding;
> };
>
> struct fuse_notify_poll_wakeup_out {
> - uint64_t kh;
> + __u64 kh;
> };
>
> struct fuse_fallocate_in {
> - uint64_t fh;
> - uint64_t offset;
> - uint64_t length;
> - uint32_t mode;
> - uint32_t padding;
> + __u64 fh;
> + __u64 offset;
> + __u64 length;
> + __u32 mode;
> + __u32 padding;
> };
>
> struct fuse_in_header {
> - uint32_t len;
> - uint32_t opcode;
> - uint64_t unique;
> - uint64_t nodeid;
> - uint32_t uid;
> - uint32_t gid;
> - uint32_t pid;
> - uint32_t padding;
> + __u32 len;
> + __u32 opcode;
> + __u64 unique;
> + __u64 nodeid;
> + __u32 uid;
> + __u32 gid;
> + __u32 pid;
> + __u32 padding;
> };
>
> struct fuse_out_header {
> - uint32_t len;
> - int32_t error;
> - uint64_t unique;
> + __u32 len;
> + __s32 error;
> + __u64 unique;
> };
>
> struct fuse_dirent {
> - uint64_t ino;
> - uint64_t off;
> - uint32_t namelen;
> - uint32_t type;
> + __u64 ino;
> + __u64 off;
> + __u32 namelen;
> + __u32 type;
> char name[];
> };
>
> #define FUSE_NAME_OFFSET offsetof(struct fuse_dirent, name)
> #define FUSE_DIRENT_ALIGN(x) \
> - (((x) + sizeof(uint64_t) - 1) & ~(sizeof(uint64_t) - 1))
> + (((x) + sizeof(__u64) - 1) & ~(sizeof(__u64) - 1))
> #define FUSE_DIRENT_SIZE(d) \
> FUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET + (d)->namelen)
>
> @@ -712,47 +708,47 @@ struct fuse_direntplus {
> FUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET_DIRENTPLUS + (d)->dirent.namelen)
>
> struct fuse_notify_inval_inode_out {
> - uint64_t ino;
> - int64_t off;
> - int64_t len;
> + __u64 ino;
> + __s64 off;
> + __s64 len;
> };
>
> struct fuse_notify_inval_entry_out {
> - uint64_t parent;
> - uint32_t namelen;
> - uint32_t padding;
> + __u64 parent;
> + __u32 namelen;
> + __u32 padding;
> };
>
> struct fuse_notify_delete_out {
> - uint64_t parent;
> - uint64_t child;
> - uint32_t namelen;
> - uint32_t padding;
> + __u64 parent;
> + __u64 child;
> + __u32 namelen;
> + __u32 padding;
> };
>
> struct fuse_notify_store_out {
> - uint64_t nodeid;
> - uint64_t offset;
> - uint32_t size;
> - uint32_t padding;
> + __u64 nodeid;
> + __u64 offset;
> + __u32 size;
> + __u32 padding;
> };
>
> struct fuse_notify_retrieve_out {
> - uint64_t notify_unique;
> - uint64_t nodeid;
> - uint64_t offset;
> - uint32_t size;
> - uint32_t padding;
> + __u64 notify_unique;
> + __u64 nodeid;
> + __u64 offset;
> + __u32 size;
> + __u32 padding;
> };
>
> /* Matches the size of fuse_write_in */
> struct fuse_notify_retrieve_in {
> - uint64_t dummy1;
> - uint64_t offset;
> - uint32_t size;
> - uint32_t dummy2;
> - uint64_t dummy3;
> - uint64_t dummy4;
> + __u64 dummy1;
> + __u64 offset;
> + __u32 size;
> + __u32 dummy2;
> + __u64 dummy3;
> + __u64 dummy4;
> };
>
> /* Device ioctls: */
> --
> 2.5.0
>
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 05/79] exynos_drm.h: use __u64 from linux/types.h
2015-10-15 5:55 ` Mikko Rapeli
(?)
@ 2015-10-15 16:17 ` Gustavo Padovan
-1 siblings, 0 replies; 206+ messages in thread
From: Gustavo Padovan @ 2015-10-15 16:17 UTC (permalink / raw)
To: Mikko Rapeli
Cc: linux-kernel, Inki Dae, Joonyoung Shim, Seung-Woo Kim,
Kyungmin Park, David Airlie, Kukjin Kim, Krzysztof Kozlowski,
dri-devel, linux-api, linux-arm-kernel, linux-samsung-soc
2015-10-15 Mikko Rapeli <mikko.rapeli@iki.fi>:
> Fixes userspace compilation error:
>
> drm/exynos_drm.h:30:2: error: unknown type name ‘uint64_t’
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
> ---
> include/uapi/drm/exynos_drm.h | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Gustavo
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 05/79] exynos_drm.h: use __u64 from linux/types.h
@ 2015-10-15 16:17 ` Gustavo Padovan
0 siblings, 0 replies; 206+ messages in thread
From: Gustavo Padovan @ 2015-10-15 16:17 UTC (permalink / raw)
To: Mikko Rapeli
Cc: Krzysztof Kozlowski, linux-samsung-soc, linux-api, Seung-Woo Kim,
linux-kernel, dri-devel, Kyungmin Park, Kukjin Kim,
linux-arm-kernel
2015-10-15 Mikko Rapeli <mikko.rapeli@iki.fi>:
> Fixes userspace compilation error:
>
> drm/exynos_drm.h:30:2: error: unknown type name ‘uint64_t’
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
> ---
> include/uapi/drm/exynos_drm.h | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Gustavo
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 206+ messages in thread
* [PATCH v4 05/79] exynos_drm.h: use __u64 from linux/types.h
@ 2015-10-15 16:17 ` Gustavo Padovan
0 siblings, 0 replies; 206+ messages in thread
From: Gustavo Padovan @ 2015-10-15 16:17 UTC (permalink / raw)
To: linux-arm-kernel
2015-10-15 Mikko Rapeli <mikko.rapeli@iki.fi>:
> Fixes userspace compilation error:
>
> drm/exynos_drm.h:30:2: error: unknown type name ?uint64_t?
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
> ---
> include/uapi/drm/exynos_drm.h | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Gustavo
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 71/79] include/uapi/linux/fuse.h: use linux/types.h also in userspace
@ 2015-10-15 17:41 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 17:41 UTC (permalink / raw)
To: Miklos Szeredi; +Cc: Kernel Mailing List, fuse-devel, Linux API
On Thu, Oct 15, 2015 at 05:20:24PM +0200, Miklos Szeredi wrote:
> On Thu, Oct 15, 2015 at 7:56 AM, Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
> > Kernel headers should not use stdint.h.
>
> Including <linux/types.h> breaks compile of library on non-Linux
> archs. Allowing this patch would mean having a different header in
> the fuse lib as the one in the kernel. This is useless complexity and
> a source of bugs. We've already been there, and much prefer the
> current state.
Hmm. Why should Linux uapi header care about non-Linux platforms?
If fuse lib already has an embedded copy of this header, why should
this change break anything fuse lib?
In my other patches I got review comments that kernel headers should not
use <stdint.h> and also Documentation/CodingStyle section 5 says:
(e) Types safe for use in userspace.
In certain structures which are visible to userspace, we cannot
require C99 types and cannot use the 'u32' form above. Thus, we
use __u32 and similar types in all structures which are shared
with userspace.
-Mikko
> NAK.
>
> Thanks,
> Miklos
>
>
> >
> > Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
> > ---
> > include/uapi/linux/fuse.h | 440 +++++++++++++++++++++++-----------------------
> > 1 file changed, 218 insertions(+), 222 deletions(-)
> >
> > diff --git a/include/uapi/linux/fuse.h b/include/uapi/linux/fuse.h
> > index c9aca04..a25e329 100644
> > --- a/include/uapi/linux/fuse.h
> > +++ b/include/uapi/linux/fuse.h
> > @@ -107,11 +107,7 @@
> > #ifndef _LINUX_FUSE_H
> > #define _LINUX_FUSE_H
> >
> > -#ifdef __KERNEL__
> > #include <linux/types.h>
> > -#else
> > -#include <stdint.h>
> > -#endif
> >
> > /*
> > * Version negotiation:
> > @@ -146,42 +142,42 @@
> > userspace works under 64bit kernels */
> >
> > struct fuse_attr {
> > - uint64_t ino;
> > - uint64_t size;
> > - uint64_t blocks;
> > - uint64_t atime;
> > - uint64_t mtime;
> > - uint64_t ctime;
> > - uint32_t atimensec;
> > - uint32_t mtimensec;
> > - uint32_t ctimensec;
> > - uint32_t mode;
> > - uint32_t nlink;
> > - uint32_t uid;
> > - uint32_t gid;
> > - uint32_t rdev;
> > - uint32_t blksize;
> > - uint32_t padding;
> > + __u64 ino;
> > + __u64 size;
> > + __u64 blocks;
> > + __u64 atime;
> > + __u64 mtime;
> > + __u64 ctime;
> > + __u32 atimensec;
> > + __u32 mtimensec;
> > + __u32 ctimensec;
> > + __u32 mode;
> > + __u32 nlink;
> > + __u32 uid;
> > + __u32 gid;
> > + __u32 rdev;
> > + __u32 blksize;
> > + __u32 padding;
> > };
> >
> > struct fuse_kstatfs {
> > - uint64_t blocks;
> > - uint64_t bfree;
> > - uint64_t bavail;
> > - uint64_t files;
> > - uint64_t ffree;
> > - uint32_t bsize;
> > - uint32_t namelen;
> > - uint32_t frsize;
> > - uint32_t padding;
> > - uint32_t spare[6];
> > + __u64 blocks;
> > + __u64 bfree;
> > + __u64 bavail;
> > + __u64 files;
> > + __u64 ffree;
> > + __u32 bsize;
> > + __u32 namelen;
> > + __u32 frsize;
> > + __u32 padding;
> > + __u32 spare[6];
> > };
> >
> > struct fuse_file_lock {
> > - uint64_t start;
> > - uint64_t end;
> > - uint32_t type;
> > - uint32_t pid; /* tgid */
> > + __u64 start;
> > + __u64 end;
> > + __u32 type;
> > + __u32 pid; /* tgid */
> > };
> >
> > /**
> > @@ -379,149 +375,149 @@ enum fuse_notify_code {
> > #define FUSE_COMPAT_ENTRY_OUT_SIZE 120
> >
> > struct fuse_entry_out {
> > - uint64_t nodeid; /* Inode ID */
> > - uint64_t generation; /* Inode generation: nodeid:gen must
> > + __u64 nodeid; /* Inode ID */
> > + __u64 generation; /* Inode generation: nodeid:gen must
> > be unique for the fs's lifetime */
> > - uint64_t entry_valid; /* Cache timeout for the name */
> > - uint64_t attr_valid; /* Cache timeout for the attributes */
> > - uint32_t entry_valid_nsec;
> > - uint32_t attr_valid_nsec;
> > + __u64 entry_valid; /* Cache timeout for the name */
> > + __u64 attr_valid; /* Cache timeout for the attributes */
> > + __u32 entry_valid_nsec;
> > + __u32 attr_valid_nsec;
> > struct fuse_attr attr;
> > };
> >
> > struct fuse_forget_in {
> > - uint64_t nlookup;
> > + __u64 nlookup;
> > };
> >
> > struct fuse_forget_one {
> > - uint64_t nodeid;
> > - uint64_t nlookup;
> > + __u64 nodeid;
> > + __u64 nlookup;
> > };
> >
> > struct fuse_batch_forget_in {
> > - uint32_t count;
> > - uint32_t dummy;
> > + __u32 count;
> > + __u32 dummy;
> > };
> >
> > struct fuse_getattr_in {
> > - uint32_t getattr_flags;
> > - uint32_t dummy;
> > - uint64_t fh;
> > + __u32 getattr_flags;
> > + __u32 dummy;
> > + __u64 fh;
> > };
> >
> > #define FUSE_COMPAT_ATTR_OUT_SIZE 96
> >
> > struct fuse_attr_out {
> > - uint64_t attr_valid; /* Cache timeout for the attributes */
> > - uint32_t attr_valid_nsec;
> > - uint32_t dummy;
> > + __u64 attr_valid; /* Cache timeout for the attributes */
> > + __u32 attr_valid_nsec;
> > + __u32 dummy;
> > struct fuse_attr attr;
> > };
> >
> > #define FUSE_COMPAT_MKNOD_IN_SIZE 8
> >
> > struct fuse_mknod_in {
> > - uint32_t mode;
> > - uint32_t rdev;
> > - uint32_t umask;
> > - uint32_t padding;
> > + __u32 mode;
> > + __u32 rdev;
> > + __u32 umask;
> > + __u32 padding;
> > };
> >
> > struct fuse_mkdir_in {
> > - uint32_t mode;
> > - uint32_t umask;
> > + __u32 mode;
> > + __u32 umask;
> > };
> >
> > struct fuse_rename_in {
> > - uint64_t newdir;
> > + __u64 newdir;
> > };
> >
> > struct fuse_rename2_in {
> > - uint64_t newdir;
> > - uint32_t flags;
> > - uint32_t padding;
> > + __u64 newdir;
> > + __u32 flags;
> > + __u32 padding;
> > };
> >
> > struct fuse_link_in {
> > - uint64_t oldnodeid;
> > + __u64 oldnodeid;
> > };
> >
> > struct fuse_setattr_in {
> > - uint32_t valid;
> > - uint32_t padding;
> > - uint64_t fh;
> > - uint64_t size;
> > - uint64_t lock_owner;
> > - uint64_t atime;
> > - uint64_t mtime;
> > - uint64_t ctime;
> > - uint32_t atimensec;
> > - uint32_t mtimensec;
> > - uint32_t ctimensec;
> > - uint32_t mode;
> > - uint32_t unused4;
> > - uint32_t uid;
> > - uint32_t gid;
> > - uint32_t unused5;
> > + __u32 valid;
> > + __u32 padding;
> > + __u64 fh;
> > + __u64 size;
> > + __u64 lock_owner;
> > + __u64 atime;
> > + __u64 mtime;
> > + __u64 ctime;
> > + __u32 atimensec;
> > + __u32 mtimensec;
> > + __u32 ctimensec;
> > + __u32 mode;
> > + __u32 unused4;
> > + __u32 uid;
> > + __u32 gid;
> > + __u32 unused5;
> > };
> >
> > struct fuse_open_in {
> > - uint32_t flags;
> > - uint32_t unused;
> > + __u32 flags;
> > + __u32 unused;
> > };
> >
> > struct fuse_create_in {
> > - uint32_t flags;
> > - uint32_t mode;
> > - uint32_t umask;
> > - uint32_t padding;
> > + __u32 flags;
> > + __u32 mode;
> > + __u32 umask;
> > + __u32 padding;
> > };
> >
> > struct fuse_open_out {
> > - uint64_t fh;
> > - uint32_t open_flags;
> > - uint32_t padding;
> > + __u64 fh;
> > + __u32 open_flags;
> > + __u32 padding;
> > };
> >
> > struct fuse_release_in {
> > - uint64_t fh;
> > - uint32_t flags;
> > - uint32_t release_flags;
> > - uint64_t lock_owner;
> > + __u64 fh;
> > + __u32 flags;
> > + __u32 release_flags;
> > + __u64 lock_owner;
> > };
> >
> > struct fuse_flush_in {
> > - uint64_t fh;
> > - uint32_t unused;
> > - uint32_t padding;
> > - uint64_t lock_owner;
> > + __u64 fh;
> > + __u32 unused;
> > + __u32 padding;
> > + __u64 lock_owner;
> > };
> >
> > struct fuse_read_in {
> > - uint64_t fh;
> > - uint64_t offset;
> > - uint32_t size;
> > - uint32_t read_flags;
> > - uint64_t lock_owner;
> > - uint32_t flags;
> > - uint32_t padding;
> > + __u64 fh;
> > + __u64 offset;
> > + __u32 size;
> > + __u32 read_flags;
> > + __u64 lock_owner;
> > + __u32 flags;
> > + __u32 padding;
> > };
> >
> > #define FUSE_COMPAT_WRITE_IN_SIZE 24
> >
> > struct fuse_write_in {
> > - uint64_t fh;
> > - uint64_t offset;
> > - uint32_t size;
> > - uint32_t write_flags;
> > - uint64_t lock_owner;
> > - uint32_t flags;
> > - uint32_t padding;
> > + __u64 fh;
> > + __u64 offset;
> > + __u32 size;
> > + __u32 write_flags;
> > + __u64 lock_owner;
> > + __u32 flags;
> > + __u32 padding;
> > };
> >
> > struct fuse_write_out {
> > - uint32_t size;
> > - uint32_t padding;
> > + __u32 size;
> > + __u32 padding;
> > };
> >
> > #define FUSE_COMPAT_STATFS_SIZE 48
> > @@ -531,32 +527,32 @@ struct fuse_statfs_out {
> > };
> >
> > struct fuse_fsync_in {
> > - uint64_t fh;
> > - uint32_t fsync_flags;
> > - uint32_t padding;
> > + __u64 fh;
> > + __u32 fsync_flags;
> > + __u32 padding;
> > };
> >
> > struct fuse_setxattr_in {
> > - uint32_t size;
> > - uint32_t flags;
> > + __u32 size;
> > + __u32 flags;
> > };
> >
> > struct fuse_getxattr_in {
> > - uint32_t size;
> > - uint32_t padding;
> > + __u32 size;
> > + __u32 padding;
> > };
> >
> > struct fuse_getxattr_out {
> > - uint32_t size;
> > - uint32_t padding;
> > + __u32 size;
> > + __u32 padding;
> > };
> >
> > struct fuse_lk_in {
> > - uint64_t fh;
> > - uint64_t owner;
> > + __u64 fh;
> > + __u64 owner;
> > struct fuse_file_lock lk;
> > - uint32_t lk_flags;
> > - uint32_t padding;
> > + __u32 lk_flags;
> > + __u32 padding;
> > };
> >
> > struct fuse_lk_out {
> > @@ -564,140 +560,140 @@ struct fuse_lk_out {
> > };
> >
> > struct fuse_access_in {
> > - uint32_t mask;
> > - uint32_t padding;
> > + __u32 mask;
> > + __u32 padding;
> > };
> >
> > struct fuse_init_in {
> > - uint32_t major;
> > - uint32_t minor;
> > - uint32_t max_readahead;
> > - uint32_t flags;
> > + __u32 major;
> > + __u32 minor;
> > + __u32 max_readahead;
> > + __u32 flags;
> > };
> >
> > #define FUSE_COMPAT_INIT_OUT_SIZE 8
> > #define FUSE_COMPAT_22_INIT_OUT_SIZE 24
> >
> > struct fuse_init_out {
> > - uint32_t major;
> > - uint32_t minor;
> > - uint32_t max_readahead;
> > - uint32_t flags;
> > - uint16_t max_background;
> > - uint16_t congestion_threshold;
> > - uint32_t max_write;
> > - uint32_t time_gran;
> > - uint32_t unused[9];
> > + __u32 major;
> > + __u32 minor;
> > + __u32 max_readahead;
> > + __u32 flags;
> > + __u16 max_background;
> > + __u16 congestion_threshold;
> > + __u32 max_write;
> > + __u32 time_gran;
> > + __u32 unused[9];
> > };
> >
> > #define CUSE_INIT_INFO_MAX 4096
> >
> > struct cuse_init_in {
> > - uint32_t major;
> > - uint32_t minor;
> > - uint32_t unused;
> > - uint32_t flags;
> > + __u32 major;
> > + __u32 minor;
> > + __u32 unused;
> > + __u32 flags;
> > };
> >
> > struct cuse_init_out {
> > - uint32_t major;
> > - uint32_t minor;
> > - uint32_t unused;
> > - uint32_t flags;
> > - uint32_t max_read;
> > - uint32_t max_write;
> > - uint32_t dev_major; /* chardev major */
> > - uint32_t dev_minor; /* chardev minor */
> > - uint32_t spare[10];
> > + __u32 major;
> > + __u32 minor;
> > + __u32 unused;
> > + __u32 flags;
> > + __u32 max_read;
> > + __u32 max_write;
> > + __u32 dev_major; /* chardev major */
> > + __u32 dev_minor; /* chardev minor */
> > + __u32 spare[10];
> > };
> >
> > struct fuse_interrupt_in {
> > - uint64_t unique;
> > + __u64 unique;
> > };
> >
> > struct fuse_bmap_in {
> > - uint64_t block;
> > - uint32_t blocksize;
> > - uint32_t padding;
> > + __u64 block;
> > + __u32 blocksize;
> > + __u32 padding;
> > };
> >
> > struct fuse_bmap_out {
> > - uint64_t block;
> > + __u64 block;
> > };
> >
> > struct fuse_ioctl_in {
> > - uint64_t fh;
> > - uint32_t flags;
> > - uint32_t cmd;
> > - uint64_t arg;
> > - uint32_t in_size;
> > - uint32_t out_size;
> > + __u64 fh;
> > + __u32 flags;
> > + __u32 cmd;
> > + __u64 arg;
> > + __u32 in_size;
> > + __u32 out_size;
> > };
> >
> > struct fuse_ioctl_iovec {
> > - uint64_t base;
> > - uint64_t len;
> > + __u64 base;
> > + __u64 len;
> > };
> >
> > struct fuse_ioctl_out {
> > - int32_t result;
> > - uint32_t flags;
> > - uint32_t in_iovs;
> > - uint32_t out_iovs;
> > + __s32 result;
> > + __u32 flags;
> > + __u32 in_iovs;
> > + __u32 out_iovs;
> > };
> >
> > struct fuse_poll_in {
> > - uint64_t fh;
> > - uint64_t kh;
> > - uint32_t flags;
> > - uint32_t events;
> > + __u64 fh;
> > + __u64 kh;
> > + __u32 flags;
> > + __u32 events;
> > };
> >
> > struct fuse_poll_out {
> > - uint32_t revents;
> > - uint32_t padding;
> > + __u32 revents;
> > + __u32 padding;
> > };
> >
> > struct fuse_notify_poll_wakeup_out {
> > - uint64_t kh;
> > + __u64 kh;
> > };
> >
> > struct fuse_fallocate_in {
> > - uint64_t fh;
> > - uint64_t offset;
> > - uint64_t length;
> > - uint32_t mode;
> > - uint32_t padding;
> > + __u64 fh;
> > + __u64 offset;
> > + __u64 length;
> > + __u32 mode;
> > + __u32 padding;
> > };
> >
> > struct fuse_in_header {
> > - uint32_t len;
> > - uint32_t opcode;
> > - uint64_t unique;
> > - uint64_t nodeid;
> > - uint32_t uid;
> > - uint32_t gid;
> > - uint32_t pid;
> > - uint32_t padding;
> > + __u32 len;
> > + __u32 opcode;
> > + __u64 unique;
> > + __u64 nodeid;
> > + __u32 uid;
> > + __u32 gid;
> > + __u32 pid;
> > + __u32 padding;
> > };
> >
> > struct fuse_out_header {
> > - uint32_t len;
> > - int32_t error;
> > - uint64_t unique;
> > + __u32 len;
> > + __s32 error;
> > + __u64 unique;
> > };
> >
> > struct fuse_dirent {
> > - uint64_t ino;
> > - uint64_t off;
> > - uint32_t namelen;
> > - uint32_t type;
> > + __u64 ino;
> > + __u64 off;
> > + __u32 namelen;
> > + __u32 type;
> > char name[];
> > };
> >
> > #define FUSE_NAME_OFFSET offsetof(struct fuse_dirent, name)
> > #define FUSE_DIRENT_ALIGN(x) \
> > - (((x) + sizeof(uint64_t) - 1) & ~(sizeof(uint64_t) - 1))
> > + (((x) + sizeof(__u64) - 1) & ~(sizeof(__u64) - 1))
> > #define FUSE_DIRENT_SIZE(d) \
> > FUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET + (d)->namelen)
> >
> > @@ -712,47 +708,47 @@ struct fuse_direntplus {
> > FUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET_DIRENTPLUS + (d)->dirent.namelen)
> >
> > struct fuse_notify_inval_inode_out {
> > - uint64_t ino;
> > - int64_t off;
> > - int64_t len;
> > + __u64 ino;
> > + __s64 off;
> > + __s64 len;
> > };
> >
> > struct fuse_notify_inval_entry_out {
> > - uint64_t parent;
> > - uint32_t namelen;
> > - uint32_t padding;
> > + __u64 parent;
> > + __u32 namelen;
> > + __u32 padding;
> > };
> >
> > struct fuse_notify_delete_out {
> > - uint64_t parent;
> > - uint64_t child;
> > - uint32_t namelen;
> > - uint32_t padding;
> > + __u64 parent;
> > + __u64 child;
> > + __u32 namelen;
> > + __u32 padding;
> > };
> >
> > struct fuse_notify_store_out {
> > - uint64_t nodeid;
> > - uint64_t offset;
> > - uint32_t size;
> > - uint32_t padding;
> > + __u64 nodeid;
> > + __u64 offset;
> > + __u32 size;
> > + __u32 padding;
> > };
> >
> > struct fuse_notify_retrieve_out {
> > - uint64_t notify_unique;
> > - uint64_t nodeid;
> > - uint64_t offset;
> > - uint32_t size;
> > - uint32_t padding;
> > + __u64 notify_unique;
> > + __u64 nodeid;
> > + __u64 offset;
> > + __u32 size;
> > + __u32 padding;
> > };
> >
> > /* Matches the size of fuse_write_in */
> > struct fuse_notify_retrieve_in {
> > - uint64_t dummy1;
> > - uint64_t offset;
> > - uint32_t size;
> > - uint32_t dummy2;
> > - uint64_t dummy3;
> > - uint64_t dummy4;
> > + __u64 dummy1;
> > + __u64 offset;
> > + __u32 size;
> > + __u32 dummy2;
> > + __u64 dummy3;
> > + __u64 dummy4;
> > };
> >
> > /* Device ioctls: */
> > --
> > 2.5.0
> >
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 71/79] include/uapi/linux/fuse.h: use linux/types.h also in userspace
@ 2015-10-15 17:41 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 17:41 UTC (permalink / raw)
To: Miklos Szeredi; +Cc: Kernel Mailing List, fuse-devel, Linux API
On Thu, Oct 15, 2015 at 05:20:24PM +0200, Miklos Szeredi wrote:
> On Thu, Oct 15, 2015 at 7:56 AM, Mikko Rapeli <mikko.rapeli-X3B1VOXEql0@public.gmane.org> wrote:
> > Kernel headers should not use stdint.h.
>
> Including <linux/types.h> breaks compile of library on non-Linux
> archs. Allowing this patch would mean having a different header in
> the fuse lib as the one in the kernel. This is useless complexity and
> a source of bugs. We've already been there, and much prefer the
> current state.
Hmm. Why should Linux uapi header care about non-Linux platforms?
If fuse lib already has an embedded copy of this header, why should
this change break anything fuse lib?
In my other patches I got review comments that kernel headers should not
use <stdint.h> and also Documentation/CodingStyle section 5 says:
(e) Types safe for use in userspace.
In certain structures which are visible to userspace, we cannot
require C99 types and cannot use the 'u32' form above. Thus, we
use __u32 and similar types in all structures which are shared
with userspace.
-Mikko
> NAK.
>
> Thanks,
> Miklos
>
>
> >
> > Signed-off-by: Mikko Rapeli <mikko.rapeli-X3B1VOXEql0@public.gmane.org>
> > ---
> > include/uapi/linux/fuse.h | 440 +++++++++++++++++++++++-----------------------
> > 1 file changed, 218 insertions(+), 222 deletions(-)
> >
> > diff --git a/include/uapi/linux/fuse.h b/include/uapi/linux/fuse.h
> > index c9aca04..a25e329 100644
> > --- a/include/uapi/linux/fuse.h
> > +++ b/include/uapi/linux/fuse.h
> > @@ -107,11 +107,7 @@
> > #ifndef _LINUX_FUSE_H
> > #define _LINUX_FUSE_H
> >
> > -#ifdef __KERNEL__
> > #include <linux/types.h>
> > -#else
> > -#include <stdint.h>
> > -#endif
> >
> > /*
> > * Version negotiation:
> > @@ -146,42 +142,42 @@
> > userspace works under 64bit kernels */
> >
> > struct fuse_attr {
> > - uint64_t ino;
> > - uint64_t size;
> > - uint64_t blocks;
> > - uint64_t atime;
> > - uint64_t mtime;
> > - uint64_t ctime;
> > - uint32_t atimensec;
> > - uint32_t mtimensec;
> > - uint32_t ctimensec;
> > - uint32_t mode;
> > - uint32_t nlink;
> > - uint32_t uid;
> > - uint32_t gid;
> > - uint32_t rdev;
> > - uint32_t blksize;
> > - uint32_t padding;
> > + __u64 ino;
> > + __u64 size;
> > + __u64 blocks;
> > + __u64 atime;
> > + __u64 mtime;
> > + __u64 ctime;
> > + __u32 atimensec;
> > + __u32 mtimensec;
> > + __u32 ctimensec;
> > + __u32 mode;
> > + __u32 nlink;
> > + __u32 uid;
> > + __u32 gid;
> > + __u32 rdev;
> > + __u32 blksize;
> > + __u32 padding;
> > };
> >
> > struct fuse_kstatfs {
> > - uint64_t blocks;
> > - uint64_t bfree;
> > - uint64_t bavail;
> > - uint64_t files;
> > - uint64_t ffree;
> > - uint32_t bsize;
> > - uint32_t namelen;
> > - uint32_t frsize;
> > - uint32_t padding;
> > - uint32_t spare[6];
> > + __u64 blocks;
> > + __u64 bfree;
> > + __u64 bavail;
> > + __u64 files;
> > + __u64 ffree;
> > + __u32 bsize;
> > + __u32 namelen;
> > + __u32 frsize;
> > + __u32 padding;
> > + __u32 spare[6];
> > };
> >
> > struct fuse_file_lock {
> > - uint64_t start;
> > - uint64_t end;
> > - uint32_t type;
> > - uint32_t pid; /* tgid */
> > + __u64 start;
> > + __u64 end;
> > + __u32 type;
> > + __u32 pid; /* tgid */
> > };
> >
> > /**
> > @@ -379,149 +375,149 @@ enum fuse_notify_code {
> > #define FUSE_COMPAT_ENTRY_OUT_SIZE 120
> >
> > struct fuse_entry_out {
> > - uint64_t nodeid; /* Inode ID */
> > - uint64_t generation; /* Inode generation: nodeid:gen must
> > + __u64 nodeid; /* Inode ID */
> > + __u64 generation; /* Inode generation: nodeid:gen must
> > be unique for the fs's lifetime */
> > - uint64_t entry_valid; /* Cache timeout for the name */
> > - uint64_t attr_valid; /* Cache timeout for the attributes */
> > - uint32_t entry_valid_nsec;
> > - uint32_t attr_valid_nsec;
> > + __u64 entry_valid; /* Cache timeout for the name */
> > + __u64 attr_valid; /* Cache timeout for the attributes */
> > + __u32 entry_valid_nsec;
> > + __u32 attr_valid_nsec;
> > struct fuse_attr attr;
> > };
> >
> > struct fuse_forget_in {
> > - uint64_t nlookup;
> > + __u64 nlookup;
> > };
> >
> > struct fuse_forget_one {
> > - uint64_t nodeid;
> > - uint64_t nlookup;
> > + __u64 nodeid;
> > + __u64 nlookup;
> > };
> >
> > struct fuse_batch_forget_in {
> > - uint32_t count;
> > - uint32_t dummy;
> > + __u32 count;
> > + __u32 dummy;
> > };
> >
> > struct fuse_getattr_in {
> > - uint32_t getattr_flags;
> > - uint32_t dummy;
> > - uint64_t fh;
> > + __u32 getattr_flags;
> > + __u32 dummy;
> > + __u64 fh;
> > };
> >
> > #define FUSE_COMPAT_ATTR_OUT_SIZE 96
> >
> > struct fuse_attr_out {
> > - uint64_t attr_valid; /* Cache timeout for the attributes */
> > - uint32_t attr_valid_nsec;
> > - uint32_t dummy;
> > + __u64 attr_valid; /* Cache timeout for the attributes */
> > + __u32 attr_valid_nsec;
> > + __u32 dummy;
> > struct fuse_attr attr;
> > };
> >
> > #define FUSE_COMPAT_MKNOD_IN_SIZE 8
> >
> > struct fuse_mknod_in {
> > - uint32_t mode;
> > - uint32_t rdev;
> > - uint32_t umask;
> > - uint32_t padding;
> > + __u32 mode;
> > + __u32 rdev;
> > + __u32 umask;
> > + __u32 padding;
> > };
> >
> > struct fuse_mkdir_in {
> > - uint32_t mode;
> > - uint32_t umask;
> > + __u32 mode;
> > + __u32 umask;
> > };
> >
> > struct fuse_rename_in {
> > - uint64_t newdir;
> > + __u64 newdir;
> > };
> >
> > struct fuse_rename2_in {
> > - uint64_t newdir;
> > - uint32_t flags;
> > - uint32_t padding;
> > + __u64 newdir;
> > + __u32 flags;
> > + __u32 padding;
> > };
> >
> > struct fuse_link_in {
> > - uint64_t oldnodeid;
> > + __u64 oldnodeid;
> > };
> >
> > struct fuse_setattr_in {
> > - uint32_t valid;
> > - uint32_t padding;
> > - uint64_t fh;
> > - uint64_t size;
> > - uint64_t lock_owner;
> > - uint64_t atime;
> > - uint64_t mtime;
> > - uint64_t ctime;
> > - uint32_t atimensec;
> > - uint32_t mtimensec;
> > - uint32_t ctimensec;
> > - uint32_t mode;
> > - uint32_t unused4;
> > - uint32_t uid;
> > - uint32_t gid;
> > - uint32_t unused5;
> > + __u32 valid;
> > + __u32 padding;
> > + __u64 fh;
> > + __u64 size;
> > + __u64 lock_owner;
> > + __u64 atime;
> > + __u64 mtime;
> > + __u64 ctime;
> > + __u32 atimensec;
> > + __u32 mtimensec;
> > + __u32 ctimensec;
> > + __u32 mode;
> > + __u32 unused4;
> > + __u32 uid;
> > + __u32 gid;
> > + __u32 unused5;
> > };
> >
> > struct fuse_open_in {
> > - uint32_t flags;
> > - uint32_t unused;
> > + __u32 flags;
> > + __u32 unused;
> > };
> >
> > struct fuse_create_in {
> > - uint32_t flags;
> > - uint32_t mode;
> > - uint32_t umask;
> > - uint32_t padding;
> > + __u32 flags;
> > + __u32 mode;
> > + __u32 umask;
> > + __u32 padding;
> > };
> >
> > struct fuse_open_out {
> > - uint64_t fh;
> > - uint32_t open_flags;
> > - uint32_t padding;
> > + __u64 fh;
> > + __u32 open_flags;
> > + __u32 padding;
> > };
> >
> > struct fuse_release_in {
> > - uint64_t fh;
> > - uint32_t flags;
> > - uint32_t release_flags;
> > - uint64_t lock_owner;
> > + __u64 fh;
> > + __u32 flags;
> > + __u32 release_flags;
> > + __u64 lock_owner;
> > };
> >
> > struct fuse_flush_in {
> > - uint64_t fh;
> > - uint32_t unused;
> > - uint32_t padding;
> > - uint64_t lock_owner;
> > + __u64 fh;
> > + __u32 unused;
> > + __u32 padding;
> > + __u64 lock_owner;
> > };
> >
> > struct fuse_read_in {
> > - uint64_t fh;
> > - uint64_t offset;
> > - uint32_t size;
> > - uint32_t read_flags;
> > - uint64_t lock_owner;
> > - uint32_t flags;
> > - uint32_t padding;
> > + __u64 fh;
> > + __u64 offset;
> > + __u32 size;
> > + __u32 read_flags;
> > + __u64 lock_owner;
> > + __u32 flags;
> > + __u32 padding;
> > };
> >
> > #define FUSE_COMPAT_WRITE_IN_SIZE 24
> >
> > struct fuse_write_in {
> > - uint64_t fh;
> > - uint64_t offset;
> > - uint32_t size;
> > - uint32_t write_flags;
> > - uint64_t lock_owner;
> > - uint32_t flags;
> > - uint32_t padding;
> > + __u64 fh;
> > + __u64 offset;
> > + __u32 size;
> > + __u32 write_flags;
> > + __u64 lock_owner;
> > + __u32 flags;
> > + __u32 padding;
> > };
> >
> > struct fuse_write_out {
> > - uint32_t size;
> > - uint32_t padding;
> > + __u32 size;
> > + __u32 padding;
> > };
> >
> > #define FUSE_COMPAT_STATFS_SIZE 48
> > @@ -531,32 +527,32 @@ struct fuse_statfs_out {
> > };
> >
> > struct fuse_fsync_in {
> > - uint64_t fh;
> > - uint32_t fsync_flags;
> > - uint32_t padding;
> > + __u64 fh;
> > + __u32 fsync_flags;
> > + __u32 padding;
> > };
> >
> > struct fuse_setxattr_in {
> > - uint32_t size;
> > - uint32_t flags;
> > + __u32 size;
> > + __u32 flags;
> > };
> >
> > struct fuse_getxattr_in {
> > - uint32_t size;
> > - uint32_t padding;
> > + __u32 size;
> > + __u32 padding;
> > };
> >
> > struct fuse_getxattr_out {
> > - uint32_t size;
> > - uint32_t padding;
> > + __u32 size;
> > + __u32 padding;
> > };
> >
> > struct fuse_lk_in {
> > - uint64_t fh;
> > - uint64_t owner;
> > + __u64 fh;
> > + __u64 owner;
> > struct fuse_file_lock lk;
> > - uint32_t lk_flags;
> > - uint32_t padding;
> > + __u32 lk_flags;
> > + __u32 padding;
> > };
> >
> > struct fuse_lk_out {
> > @@ -564,140 +560,140 @@ struct fuse_lk_out {
> > };
> >
> > struct fuse_access_in {
> > - uint32_t mask;
> > - uint32_t padding;
> > + __u32 mask;
> > + __u32 padding;
> > };
> >
> > struct fuse_init_in {
> > - uint32_t major;
> > - uint32_t minor;
> > - uint32_t max_readahead;
> > - uint32_t flags;
> > + __u32 major;
> > + __u32 minor;
> > + __u32 max_readahead;
> > + __u32 flags;
> > };
> >
> > #define FUSE_COMPAT_INIT_OUT_SIZE 8
> > #define FUSE_COMPAT_22_INIT_OUT_SIZE 24
> >
> > struct fuse_init_out {
> > - uint32_t major;
> > - uint32_t minor;
> > - uint32_t max_readahead;
> > - uint32_t flags;
> > - uint16_t max_background;
> > - uint16_t congestion_threshold;
> > - uint32_t max_write;
> > - uint32_t time_gran;
> > - uint32_t unused[9];
> > + __u32 major;
> > + __u32 minor;
> > + __u32 max_readahead;
> > + __u32 flags;
> > + __u16 max_background;
> > + __u16 congestion_threshold;
> > + __u32 max_write;
> > + __u32 time_gran;
> > + __u32 unused[9];
> > };
> >
> > #define CUSE_INIT_INFO_MAX 4096
> >
> > struct cuse_init_in {
> > - uint32_t major;
> > - uint32_t minor;
> > - uint32_t unused;
> > - uint32_t flags;
> > + __u32 major;
> > + __u32 minor;
> > + __u32 unused;
> > + __u32 flags;
> > };
> >
> > struct cuse_init_out {
> > - uint32_t major;
> > - uint32_t minor;
> > - uint32_t unused;
> > - uint32_t flags;
> > - uint32_t max_read;
> > - uint32_t max_write;
> > - uint32_t dev_major; /* chardev major */
> > - uint32_t dev_minor; /* chardev minor */
> > - uint32_t spare[10];
> > + __u32 major;
> > + __u32 minor;
> > + __u32 unused;
> > + __u32 flags;
> > + __u32 max_read;
> > + __u32 max_write;
> > + __u32 dev_major; /* chardev major */
> > + __u32 dev_minor; /* chardev minor */
> > + __u32 spare[10];
> > };
> >
> > struct fuse_interrupt_in {
> > - uint64_t unique;
> > + __u64 unique;
> > };
> >
> > struct fuse_bmap_in {
> > - uint64_t block;
> > - uint32_t blocksize;
> > - uint32_t padding;
> > + __u64 block;
> > + __u32 blocksize;
> > + __u32 padding;
> > };
> >
> > struct fuse_bmap_out {
> > - uint64_t block;
> > + __u64 block;
> > };
> >
> > struct fuse_ioctl_in {
> > - uint64_t fh;
> > - uint32_t flags;
> > - uint32_t cmd;
> > - uint64_t arg;
> > - uint32_t in_size;
> > - uint32_t out_size;
> > + __u64 fh;
> > + __u32 flags;
> > + __u32 cmd;
> > + __u64 arg;
> > + __u32 in_size;
> > + __u32 out_size;
> > };
> >
> > struct fuse_ioctl_iovec {
> > - uint64_t base;
> > - uint64_t len;
> > + __u64 base;
> > + __u64 len;
> > };
> >
> > struct fuse_ioctl_out {
> > - int32_t result;
> > - uint32_t flags;
> > - uint32_t in_iovs;
> > - uint32_t out_iovs;
> > + __s32 result;
> > + __u32 flags;
> > + __u32 in_iovs;
> > + __u32 out_iovs;
> > };
> >
> > struct fuse_poll_in {
> > - uint64_t fh;
> > - uint64_t kh;
> > - uint32_t flags;
> > - uint32_t events;
> > + __u64 fh;
> > + __u64 kh;
> > + __u32 flags;
> > + __u32 events;
> > };
> >
> > struct fuse_poll_out {
> > - uint32_t revents;
> > - uint32_t padding;
> > + __u32 revents;
> > + __u32 padding;
> > };
> >
> > struct fuse_notify_poll_wakeup_out {
> > - uint64_t kh;
> > + __u64 kh;
> > };
> >
> > struct fuse_fallocate_in {
> > - uint64_t fh;
> > - uint64_t offset;
> > - uint64_t length;
> > - uint32_t mode;
> > - uint32_t padding;
> > + __u64 fh;
> > + __u64 offset;
> > + __u64 length;
> > + __u32 mode;
> > + __u32 padding;
> > };
> >
> > struct fuse_in_header {
> > - uint32_t len;
> > - uint32_t opcode;
> > - uint64_t unique;
> > - uint64_t nodeid;
> > - uint32_t uid;
> > - uint32_t gid;
> > - uint32_t pid;
> > - uint32_t padding;
> > + __u32 len;
> > + __u32 opcode;
> > + __u64 unique;
> > + __u64 nodeid;
> > + __u32 uid;
> > + __u32 gid;
> > + __u32 pid;
> > + __u32 padding;
> > };
> >
> > struct fuse_out_header {
> > - uint32_t len;
> > - int32_t error;
> > - uint64_t unique;
> > + __u32 len;
> > + __s32 error;
> > + __u64 unique;
> > };
> >
> > struct fuse_dirent {
> > - uint64_t ino;
> > - uint64_t off;
> > - uint32_t namelen;
> > - uint32_t type;
> > + __u64 ino;
> > + __u64 off;
> > + __u32 namelen;
> > + __u32 type;
> > char name[];
> > };
> >
> > #define FUSE_NAME_OFFSET offsetof(struct fuse_dirent, name)
> > #define FUSE_DIRENT_ALIGN(x) \
> > - (((x) + sizeof(uint64_t) - 1) & ~(sizeof(uint64_t) - 1))
> > + (((x) + sizeof(__u64) - 1) & ~(sizeof(__u64) - 1))
> > #define FUSE_DIRENT_SIZE(d) \
> > FUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET + (d)->namelen)
> >
> > @@ -712,47 +708,47 @@ struct fuse_direntplus {
> > FUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET_DIRENTPLUS + (d)->dirent.namelen)
> >
> > struct fuse_notify_inval_inode_out {
> > - uint64_t ino;
> > - int64_t off;
> > - int64_t len;
> > + __u64 ino;
> > + __s64 off;
> > + __s64 len;
> > };
> >
> > struct fuse_notify_inval_entry_out {
> > - uint64_t parent;
> > - uint32_t namelen;
> > - uint32_t padding;
> > + __u64 parent;
> > + __u32 namelen;
> > + __u32 padding;
> > };
> >
> > struct fuse_notify_delete_out {
> > - uint64_t parent;
> > - uint64_t child;
> > - uint32_t namelen;
> > - uint32_t padding;
> > + __u64 parent;
> > + __u64 child;
> > + __u32 namelen;
> > + __u32 padding;
> > };
> >
> > struct fuse_notify_store_out {
> > - uint64_t nodeid;
> > - uint64_t offset;
> > - uint32_t size;
> > - uint32_t padding;
> > + __u64 nodeid;
> > + __u64 offset;
> > + __u32 size;
> > + __u32 padding;
> > };
> >
> > struct fuse_notify_retrieve_out {
> > - uint64_t notify_unique;
> > - uint64_t nodeid;
> > - uint64_t offset;
> > - uint32_t size;
> > - uint32_t padding;
> > + __u64 notify_unique;
> > + __u64 nodeid;
> > + __u64 offset;
> > + __u32 size;
> > + __u32 padding;
> > };
> >
> > /* Matches the size of fuse_write_in */
> > struct fuse_notify_retrieve_in {
> > - uint64_t dummy1;
> > - uint64_t offset;
> > - uint32_t size;
> > - uint32_t dummy2;
> > - uint64_t dummy3;
> > - uint64_t dummy4;
> > + __u64 dummy1;
> > + __u64 offset;
> > + __u32 size;
> > + __u32 dummy2;
> > + __u64 dummy3;
> > + __u64 dummy4;
> > };
> >
> > /* Device ioctls: */
> > --
> > 2.5.0
> >
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 18/79] dm-log-userspace.h: use __u32, __s32 and __u64 from linux/types.h
@ 2015-10-15 17:53 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 17:53 UTC (permalink / raw)
To: Mike Snitzer; +Cc: linux-kernel, dm-devel, Alasdair Kergon, linux-api
Hi,
On Thu, Oct 15, 2015 at 04:09:50AM -0400, Mike Snitzer wrote:
> On Thu, Oct 15 2015 at 1:55am -0400,
> Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
>
> > Fixes userspace compilation errors like:
> >
> > linux/dm-log-userspace.h:416:2: error: unknown type name ‘uint64_t’
> >
> > Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
>
> As was already explained before, there is no need to compile this for
> userspace consumption. Where is this requirement coming from?
Sorry, maybe I did not understand this comment. Currently
include/uapi/linux/dm-log-userspace.h is in uapi headers and thus exported
to userspace and has this bug/feature which breaks a build.
Are you saying that it should not be exported to userspace at all and it
should be moved back to include/linux/dm-log.h?
I can prepare such a change instead.
> If your 0th patch's header speaks to _why_ you keep requesting this
> change then please cc me on it.
Sorry, I'm touching too many uapi headers with similar changes
so I can't Cc that many mailing lists and individuals with the cover
letter, but it is available here:
https://lkml.org/lkml/2015/10/15/22
-Mikko
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 18/79] dm-log-userspace.h: use __u32, __s32 and __u64 from linux/types.h
@ 2015-10-15 17:53 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 17:53 UTC (permalink / raw)
To: Mike Snitzer
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA,
dm-devel-H+wXaHxf7aLQT0dZR+AlfA, Alasdair Kergon,
linux-api-u79uwXL29TY76Z2rM5mHXA
Hi,
On Thu, Oct 15, 2015 at 04:09:50AM -0400, Mike Snitzer wrote:
> On Thu, Oct 15 2015 at 1:55am -0400,
> Mikko Rapeli <mikko.rapeli-X3B1VOXEql0@public.gmane.org> wrote:
>
> > Fixes userspace compilation errors like:
> >
> > linux/dm-log-userspace.h:416:2: error: unknown type name ‘uint64_t’
> >
> > Signed-off-by: Mikko Rapeli <mikko.rapeli-X3B1VOXEql0@public.gmane.org>
>
> As was already explained before, there is no need to compile this for
> userspace consumption. Where is this requirement coming from?
Sorry, maybe I did not understand this comment. Currently
include/uapi/linux/dm-log-userspace.h is in uapi headers and thus exported
to userspace and has this bug/feature which breaks a build.
Are you saying that it should not be exported to userspace at all and it
should be moved back to include/linux/dm-log.h?
I can prepare such a change instead.
> If your 0th patch's header speaks to _why_ you keep requesting this
> change then please cc me on it.
Sorry, I'm touching too many uapi headers with similar changes
so I can't Cc that many mailing lists and individuals with the cover
letter, but it is available here:
https://lkml.org/lkml/2015/10/15/22
-Mikko
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 45/79] linux/if.h linux/hdlc/ioctl.h: move IFNAMSIZ definition to hdlc/ioctl.h
@ 2015-10-15 18:08 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 18:08 UTC (permalink / raw)
To: Frans Klaver; +Cc: linux-kernel, linux-api
On Thu, Oct 15, 2015 at 10:49:17AM +0200, Frans Klaver wrote:
> Hi,
>
> On Thu, Oct 15, 2015 at 7:56 AM, Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
> > And include linux/hdlc/ioctl.h from linux/if.h.
>
> That appears to have already been the case before this patch. You just
> add a comment behind the include statement.
True, fixed in a new version.
-Mikko
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 45/79] linux/if.h linux/hdlc/ioctl.h: move IFNAMSIZ definition to hdlc/ioctl.h
@ 2015-10-15 18:08 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 18:08 UTC (permalink / raw)
To: Frans Klaver; +Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-api
On Thu, Oct 15, 2015 at 10:49:17AM +0200, Frans Klaver wrote:
> Hi,
>
> On Thu, Oct 15, 2015 at 7:56 AM, Mikko Rapeli <mikko.rapeli-X3B1VOXEql0@public.gmane.org> wrote:
> > And include linux/hdlc/ioctl.h from linux/if.h.
>
> That appears to have already been the case before this patch. You just
> add a comment behind the include statement.
True, fixed in a new version.
-Mikko
^ permalink raw reply [flat|nested] 206+ messages in thread
* [PATCH] linux/if.h linux/hdlc/ioctl.h: move IFNAMSIZ definition to hdlc/ioctl.h
@ 2015-10-15 18:11 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 18:11 UTC (permalink / raw)
To: fransklaver; +Cc: mikko.rapeli, linux-kernel, linux-api
Fixes userspace compiler error:
error: ‘IFNAMSIZ’ undeclared here (not in a function)
Suggested by Frans Klaver <fransklaver@gmail.com> on lkml message
<20150530195223.GA15645@bugger.home>.
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/hdlc/ioctl.h | 1 +
include/uapi/linux/if.h | 6 ++----
2 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/include/uapi/linux/hdlc/ioctl.h b/include/uapi/linux/hdlc/ioctl.h
index 04bc027..d1b1de5 100644
--- a/include/uapi/linux/hdlc/ioctl.h
+++ b/include/uapi/linux/hdlc/ioctl.h
@@ -1,6 +1,7 @@
#ifndef __HDLC_IOCTL_H__
#define __HDLC_IOCTL_H__
+#define IFNAMSIZ 16
#define GENERIC_HDLC_VERSION 4 /* For synchronization with sethdlc utility */
diff --git a/include/uapi/linux/if.h b/include/uapi/linux/if.h
index 9cf2394..0f98f0a 100644
--- a/include/uapi/linux/if.h
+++ b/include/uapi/linux/if.h
@@ -22,10 +22,8 @@
#include <linux/types.h> /* for "__kernel_caddr_t" et al */
#include <linux/socket.h> /* for "struct sockaddr" et al */
#include <linux/compiler.h> /* for "__user" et al */
-
-#define IFNAMSIZ 16
-#define IFALIASZ 256
-#include <linux/hdlc/ioctl.h>
+#include <linux/hdlc/ioctl.h> /* for IFNAMSIZ */
+#define IFALIASZ 256
/**
* enum net_device_flags - &struct net_device flags
--
2.6.1
^ permalink raw reply related [flat|nested] 206+ messages in thread
* [PATCH] linux/if.h linux/hdlc/ioctl.h: move IFNAMSIZ definition to hdlc/ioctl.h
@ 2015-10-15 18:11 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 18:11 UTC (permalink / raw)
To: fransklaver-Re5JQEeQqe8AvxtiuMwx3w
Cc: mikko.rapeli-X3B1VOXEql0, linux-kernel-u79uwXL29TY76Z2rM5mHXA,
linux-api-u79uwXL29TY76Z2rM5mHXA
Fixes userspace compiler error:
error: ‘IFNAMSIZ’ undeclared here (not in a function)
Suggested by Frans Klaver <fransklaver-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> on lkml message
<20150530195223.GA15645-LuJdRk73L+f/9pzu0YdTqQ@public.gmane.org>.
Signed-off-by: Mikko Rapeli <mikko.rapeli-X3B1VOXEql0@public.gmane.org>
---
include/uapi/linux/hdlc/ioctl.h | 1 +
include/uapi/linux/if.h | 6 ++----
2 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/include/uapi/linux/hdlc/ioctl.h b/include/uapi/linux/hdlc/ioctl.h
index 04bc027..d1b1de5 100644
--- a/include/uapi/linux/hdlc/ioctl.h
+++ b/include/uapi/linux/hdlc/ioctl.h
@@ -1,6 +1,7 @@
#ifndef __HDLC_IOCTL_H__
#define __HDLC_IOCTL_H__
+#define IFNAMSIZ 16
#define GENERIC_HDLC_VERSION 4 /* For synchronization with sethdlc utility */
diff --git a/include/uapi/linux/if.h b/include/uapi/linux/if.h
index 9cf2394..0f98f0a 100644
--- a/include/uapi/linux/if.h
+++ b/include/uapi/linux/if.h
@@ -22,10 +22,8 @@
#include <linux/types.h> /* for "__kernel_caddr_t" et al */
#include <linux/socket.h> /* for "struct sockaddr" et al */
#include <linux/compiler.h> /* for "__user" et al */
-
-#define IFNAMSIZ 16
-#define IFALIASZ 256
-#include <linux/hdlc/ioctl.h>
+#include <linux/hdlc/ioctl.h> /* for IFNAMSIZ */
+#define IFALIASZ 256
/**
* enum net_device_flags - &struct net_device flags
--
2.6.1
^ permalink raw reply related [flat|nested] 206+ messages in thread
* Re: [PATCH v4 71/79] include/uapi/linux/fuse.h: use linux/types.h also in userspace
@ 2015-10-15 18:32 ` Miklos Szeredi
0 siblings, 0 replies; 206+ messages in thread
From: Miklos Szeredi @ 2015-10-15 18:32 UTC (permalink / raw)
To: Mikko Rapeli; +Cc: Kernel Mailing List, fuse-devel, Linux API
On Thu, Oct 15, 2015 at 7:41 PM, Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
> On Thu, Oct 15, 2015 at 05:20:24PM +0200, Miklos Szeredi wrote:
>> On Thu, Oct 15, 2015 at 7:56 AM, Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
>> > Kernel headers should not use stdint.h.
>>
>> Including <linux/types.h> breaks compile of library on non-Linux
>> archs. Allowing this patch would mean having a different header in
>> the fuse lib as the one in the kernel. This is useless complexity and
>> a source of bugs. We've already been there, and much prefer the
>> current state.
>
> Hmm. Why should Linux uapi header care about non-Linux platforms?
>
> If fuse lib already has an embedded copy of this header, why should
> this change break anything fuse lib?
It has a copy, but that copy is often updated with new features taken
from the kernel. There's no reason to have two different versions of
the header file for no good reason.
> In my other patches I got review comments that kernel headers should not
> use <stdint.h> and also Documentation/CodingStyle section 5 says:
>
> (e) Types safe for use in userspace.
>
> In certain structures which are visible to userspace, we cannot
> require C99 types and cannot use the 'u32' form above. Thus, we
> use __u32 and similar types in all structures which are shared
> with userspace.
Ok, if you cannot require C99, then the __uXX types are the way to go.
But for the fuse API we *can* use C99 types, nothing preventing us
from doing it.
Thanks,
Miklos
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 71/79] include/uapi/linux/fuse.h: use linux/types.h also in userspace
@ 2015-10-15 18:32 ` Miklos Szeredi
0 siblings, 0 replies; 206+ messages in thread
From: Miklos Szeredi @ 2015-10-15 18:32 UTC (permalink / raw)
To: Mikko Rapeli; +Cc: Kernel Mailing List, fuse-devel, Linux API
On Thu, Oct 15, 2015 at 7:41 PM, Mikko Rapeli <mikko.rapeli-X3B1VOXEql0@public.gmane.org> wrote:
> On Thu, Oct 15, 2015 at 05:20:24PM +0200, Miklos Szeredi wrote:
>> On Thu, Oct 15, 2015 at 7:56 AM, Mikko Rapeli <mikko.rapeli-X3B1VOXEql0@public.gmane.org> wrote:
>> > Kernel headers should not use stdint.h.
>>
>> Including <linux/types.h> breaks compile of library on non-Linux
>> archs. Allowing this patch would mean having a different header in
>> the fuse lib as the one in the kernel. This is useless complexity and
>> a source of bugs. We've already been there, and much prefer the
>> current state.
>
> Hmm. Why should Linux uapi header care about non-Linux platforms?
>
> If fuse lib already has an embedded copy of this header, why should
> this change break anything fuse lib?
It has a copy, but that copy is often updated with new features taken
from the kernel. There's no reason to have two different versions of
the header file for no good reason.
> In my other patches I got review comments that kernel headers should not
> use <stdint.h> and also Documentation/CodingStyle section 5 says:
>
> (e) Types safe for use in userspace.
>
> In certain structures which are visible to userspace, we cannot
> require C99 types and cannot use the 'u32' form above. Thus, we
> use __u32 and similar types in all structures which are shared
> with userspace.
Ok, if you cannot require C99, then the __uXX types are the way to go.
But for the fuse API we *can* use C99 types, nothing preventing us
from doing it.
Thanks,
Miklos
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 71/79] include/uapi/linux/fuse.h: use linux/types.h also in userspace
@ 2015-10-15 18:59 ` Arnd Bergmann
0 siblings, 0 replies; 206+ messages in thread
From: Arnd Bergmann @ 2015-10-15 18:59 UTC (permalink / raw)
To: Miklos Szeredi; +Cc: Mikko Rapeli, Kernel Mailing List, fuse-devel, Linux API
On Thursday 15 October 2015 20:32:45 Miklos Szeredi wrote:
> > In my other patches I got review comments that kernel headers should not
> > use <stdint.h> and also Documentation/CodingStyle section 5 says:
> >
> > (e) Types safe for use in userspace.
> >
> > In certain structures which are visible to userspace, we cannot
> > require C99 types and cannot use the 'u32' form above. Thus, we
> > use __u32 and similar types in all structures which are shared
> > with userspace.
>
> Ok, if you cannot require C99, then the __uXX types are the way to go.
> But for the fuse API we *can* use C99 types, nothing preventing us
> from doing it.
What the sentence above means is that you should not rely on the
user including <stdint.h> before including a kernel header, and
that kernel headers are not allowed to include <stdint.h> themselves,
because that would break any pre-C99 user space that defines types
with the same names in their own headers and that relies on that
header not to be included implicitly.
It's possible that it has never been a problem for the fuse headers,
but it has been a problem for other headers in the past and what
Mikko is trying to achieve is to ensure that none of the kernel
headers do this so we can make it an error in 'make headers_install'.
Arnd
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 71/79] include/uapi/linux/fuse.h: use linux/types.h also in userspace
@ 2015-10-15 18:59 ` Arnd Bergmann
0 siblings, 0 replies; 206+ messages in thread
From: Arnd Bergmann @ 2015-10-15 18:59 UTC (permalink / raw)
To: Miklos Szeredi; +Cc: Mikko Rapeli, Kernel Mailing List, fuse-devel, Linux API
On Thursday 15 October 2015 20:32:45 Miklos Szeredi wrote:
> > In my other patches I got review comments that kernel headers should not
> > use <stdint.h> and also Documentation/CodingStyle section 5 says:
> >
> > (e) Types safe for use in userspace.
> >
> > In certain structures which are visible to userspace, we cannot
> > require C99 types and cannot use the 'u32' form above. Thus, we
> > use __u32 and similar types in all structures which are shared
> > with userspace.
>
> Ok, if you cannot require C99, then the __uXX types are the way to go.
> But for the fuse API we *can* use C99 types, nothing preventing us
> from doing it.
What the sentence above means is that you should not rely on the
user including <stdint.h> before including a kernel header, and
that kernel headers are not allowed to include <stdint.h> themselves,
because that would break any pre-C99 user space that defines types
with the same names in their own headers and that relies on that
header not to be included implicitly.
It's possible that it has never been a problem for the fuse headers,
but it has been a problem for other headers in the past and what
Mikko is trying to achieve is to ensure that none of the kernel
headers do this so we can make it an error in 'make headers_install'.
Arnd
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 71/79] include/uapi/linux/fuse.h: use linux/types.h also in userspace
2015-10-15 18:59 ` Arnd Bergmann
(?)
@ 2015-10-15 19:25 ` Miklos Szeredi
2015-10-15 21:03 ` Mikko Rapeli
-1 siblings, 1 reply; 206+ messages in thread
From: Miklos Szeredi @ 2015-10-15 19:25 UTC (permalink / raw)
To: Arnd Bergmann; +Cc: Mikko Rapeli, Kernel Mailing List, fuse-devel, Linux API
On Thu, Oct 15, 2015 at 8:59 PM, Arnd Bergmann <arnd@arndb.de> wrote:
> On Thursday 15 October 2015 20:32:45 Miklos Szeredi wrote:
>> > In my other patches I got review comments that kernel headers should not
>> > use <stdint.h> and also Documentation/CodingStyle section 5 says:
>> >
>> > (e) Types safe for use in userspace.
>> >
>> > In certain structures which are visible to userspace, we cannot
>> > require C99 types and cannot use the 'u32' form above. Thus, we
>> > use __u32 and similar types in all structures which are shared
>> > with userspace.
>>
>> Ok, if you cannot require C99, then the __uXX types are the way to go.
>> But for the fuse API we *can* use C99 types, nothing preventing us
>> from doing it.
>
> What the sentence above means is that you should not rely on the
> user including <stdint.h> before including a kernel header, and
> that kernel headers are not allowed to include <stdint.h> themselves,
> because that would break any pre-C99 user space that defines types
> with the same names in their own headers and that relies on that
> header not to be included implicitly.
>
> It's possible that it has never been a problem for the fuse headers,
> but it has been a problem for other headers in the past and what
> Mikko is trying to achieve is to ensure that none of the kernel
> headers do this so we can make it an error in 'make headers_install'.
"in some cases including <stdint.h> might be a problem" is not a very
strong argument in favour of making it an error. And since it would
be a step backwards for the fuse header I object to making it an
error.
If this is really such a big issue, then why not make it a warning
(and add a mechanism to silence that warning)?
Thanks,
Miklos
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 71/79] include/uapi/linux/fuse.h: use linux/types.h also in userspace
@ 2015-10-15 21:03 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 21:03 UTC (permalink / raw)
To: Miklos Szeredi; +Cc: Arnd Bergmann, Kernel Mailing List, fuse-devel, Linux API
On Thu, Oct 15, 2015 at 09:25:30PM +0200, Miklos Szeredi wrote:
> On Thu, Oct 15, 2015 at 8:59 PM, Arnd Bergmann <arnd@arndb.de> wrote:
> > On Thursday 15 October 2015 20:32:45 Miklos Szeredi wrote:
> >> > In my other patches I got review comments that kernel headers should not
> >> > use <stdint.h> and also Documentation/CodingStyle section 5 says:
> >> >
> >> > (e) Types safe for use in userspace.
> >> >
> >> > In certain structures which are visible to userspace, we cannot
> >> > require C99 types and cannot use the 'u32' form above. Thus, we
> >> > use __u32 and similar types in all structures which are shared
> >> > with userspace.
> >>
> >> Ok, if you cannot require C99, then the __uXX types are the way to go.
> >> But for the fuse API we *can* use C99 types, nothing preventing us
> >> from doing it.
> >
> > What the sentence above means is that you should not rely on the
> > user including <stdint.h> before including a kernel header, and
> > that kernel headers are not allowed to include <stdint.h> themselves,
> > because that would break any pre-C99 user space that defines types
> > with the same names in their own headers and that relies on that
> > header not to be included implicitly.
> >
> > It's possible that it has never been a problem for the fuse headers,
> > but it has been a problem for other headers in the past and what
> > Mikko is trying to achieve is to ensure that none of the kernel
> > headers do this so we can make it an error in 'make headers_install'.
>
> "in some cases including <stdint.h> might be a problem" is not a very
> strong argument in favour of making it an error. And since it would
> be a step backwards for the fuse header I object to making it an
> error.
>
> If this is really such a big issue, then why not make it a warning
> (and add a mechanism to silence that warning)?
I tried compiling fuse userspace library with this patch applied and
it compiles without any problems:
$ make
Making all in include
make[1]: Entering directory '/home/mcfrisk/src/fuse-fuse/include'
make all-am
make[2]: Entering directory '/home/mcfrisk/src/fuse-fuse/include'
make[2]: Leaving directory '/home/mcfrisk/src/fuse-fuse/include'
make[1]: Leaving directory '/home/mcfrisk/src/fuse-fuse/include'
Making all in lib
make[1]: Entering directory '/home/mcfrisk/src/fuse-fuse/lib'
CC fuse.lo
CC fuse_loop_mt.lo
CC fuse_lowlevel.lo
CC cuse_lowlevel.lo
CCLD libfuse3.la
ar: `u' modifier ignored since `D' is the default (see `U')
make[1]: Leaving directory '/home/mcfrisk/src/fuse-fuse/lib'
Making all in util
make[1]: Entering directory '/home/mcfrisk/src/fuse-fuse/util'
make all-am
make[2]: Entering directory '/home/mcfrisk/src/fuse-fuse/util'
make[2]: Nothing to be done for 'all-am'.
make[2]: Leaving directory '/home/mcfrisk/src/fuse-fuse/util'
make[1]: Leaving directory '/home/mcfrisk/src/fuse-fuse/util'
Making all in example
make[1]: Entering directory '/home/mcfrisk/src/fuse-fuse/example'
CCLD fusexmp
CCLD fusexmp_fh
CCLD null
CCLD hello
CCLD hello_ll
CCLD fioc
CCLD fsel
CCLD cusexmp
CCLD fuse_lo-plus
make[1]: Leaving directory '/home/mcfrisk/src/fuse-fuse/example'
Making all in doc
make[1]: Entering directory '/home/mcfrisk/src/fuse-fuse/doc'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/home/mcfrisk/src/fuse-fuse/doc'
make[1]: Entering directory '/home/mcfrisk/src/fuse-fuse'
make[1]: Nothing to be done for 'all-am'.
make[1]: Leaving directory '/home/mcfrisk/src/fuse-fuse'
$ git diff
diff --git a/include/fuse_kernel.h b/include/fuse_kernel.h
index c9aca04..a25e329 100644
--- a/include/fuse_kernel.h
+++ b/include/fuse_kernel.h
@@ -107,11 +107,7 @@
#ifndef _LINUX_FUSE_H
#define _LINUX_FUSE_H
-#ifdef __KERNEL__
#include <linux/types.h>
-#else
-#include <stdint.h>
-#endif
/*
* Version negotiation:
@@ -146,42 +142,42 @@
userspace works under 64bit kernels */
struct fuse_attr {
- uint64_t ino;
- uint64_t size;
- uint64_t blocks;
- uint64_t atime;
- uint64_t mtime;
- uint64_t ctime;
- uint32_t atimensec;
- uint32_t mtimensec;
- uint32_t ctimensec;
- uint32_t mode;
- uint32_t nlink;
- uint32_t uid;
- uint32_t gid;
- uint32_t rdev;
- uint32_t blksize;
- uint32_t padding;
+ __u64 ino;
+ __u64 size;
+ __u64 blocks;
+ __u64 atime;
+ __u64 mtime;
+ __u64 ctime;
+ __u32 atimensec;
+ __u32 mtimensec;
+ __u32 ctimensec;
+ __u32 mode;
+ __u32 nlink;
+ __u32 uid;
+ __u32 gid;
+ __u32 rdev;
+ __u32 blksize;
+ __u32 padding;
};
struct fuse_kstatfs {
- uint64_t blocks;
- uint64_t bfree;
- uint64_t bavail;
- uint64_t files;
- uint64_t ffree;
- uint32_t bsize;
- uint32_t namelen;
- uint32_t frsize;
- uint32_t padding;
- uint32_t spare[6];
+ __u64 blocks;
+ __u64 bfree;
+ __u64 bavail;
+ __u64 files;
+ __u64 ffree;
+ __u32 bsize;
+ __u32 namelen;
+ __u32 frsize;
+ __u32 padding;
+ __u32 spare[6];
};
struct fuse_file_lock {
- uint64_t start;
- uint64_t end;
- uint32_t type;
- uint32_t pid; /* tgid */
+ __u64 start;
+ __u64 end;
+ __u32 type;
+ __u32 pid; /* tgid */
};
/**
@@ -379,149 +375,149 @@ enum fuse_notify_code {
#define FUSE_COMPAT_ENTRY_OUT_SIZE 120
struct fuse_entry_out {
- uint64_t nodeid; /* Inode ID */
- uint64_t generation; /* Inode generation: nodeid:gen must
+ __u64 nodeid; /* Inode ID */
+ __u64 generation; /* Inode generation: nodeid:gen must
be unique for the fs's lifetime */
- uint64_t entry_valid; /* Cache timeout for the name */
- uint64_t attr_valid; /* Cache timeout for the attributes */
- uint32_t entry_valid_nsec;
- uint32_t attr_valid_nsec;
+ __u64 entry_valid; /* Cache timeout for the name */
+ __u64 attr_valid; /* Cache timeout for the attributes */
+ __u32 entry_valid_nsec;
+ __u32 attr_valid_nsec;
struct fuse_attr attr;
};
struct fuse_forget_in {
- uint64_t nlookup;
+ __u64 nlookup;
};
struct fuse_forget_one {
- uint64_t nodeid;
- uint64_t nlookup;
+ __u64 nodeid;
+ __u64 nlookup;
};
struct fuse_batch_forget_in {
- uint32_t count;
- uint32_t dummy;
+ __u32 count;
+ __u32 dummy;
};
struct fuse_getattr_in {
- uint32_t getattr_flags;
- uint32_t dummy;
- uint64_t fh;
+ __u32 getattr_flags;
+ __u32 dummy;
+ __u64 fh;
};
#define FUSE_COMPAT_ATTR_OUT_SIZE 96
struct fuse_attr_out {
- uint64_t attr_valid; /* Cache timeout for the attributes */
- uint32_t attr_valid_nsec;
- uint32_t dummy;
+ __u64 attr_valid; /* Cache timeout for the attributes */
+ __u32 attr_valid_nsec;
+ __u32 dummy;
struct fuse_attr attr;
};
#define FUSE_COMPAT_MKNOD_IN_SIZE 8
struct fuse_mknod_in {
- uint32_t mode;
- uint32_t rdev;
- uint32_t umask;
- uint32_t padding;
+ __u32 mode;
+ __u32 rdev;
+ __u32 umask;
+ __u32 padding;
};
struct fuse_mkdir_in {
- uint32_t mode;
- uint32_t umask;
+ __u32 mode;
+ __u32 umask;
};
struct fuse_rename_in {
- uint64_t newdir;
+ __u64 newdir;
};
struct fuse_rename2_in {
- uint64_t newdir;
- uint32_t flags;
- uint32_t padding;
+ __u64 newdir;
+ __u32 flags;
+ __u32 padding;
};
struct fuse_link_in {
- uint64_t oldnodeid;
+ __u64 oldnodeid;
};
struct fuse_setattr_in {
- uint32_t valid;
- uint32_t padding;
- uint64_t fh;
- uint64_t size;
- uint64_t lock_owner;
- uint64_t atime;
- uint64_t mtime;
- uint64_t ctime;
- uint32_t atimensec;
- uint32_t mtimensec;
- uint32_t ctimensec;
- uint32_t mode;
- uint32_t unused4;
- uint32_t uid;
- uint32_t gid;
- uint32_t unused5;
+ __u32 valid;
+ __u32 padding;
+ __u64 fh;
+ __u64 size;
+ __u64 lock_owner;
+ __u64 atime;
+ __u64 mtime;
+ __u64 ctime;
+ __u32 atimensec;
+ __u32 mtimensec;
+ __u32 ctimensec;
+ __u32 mode;
+ __u32 unused4;
+ __u32 uid;
+ __u32 gid;
+ __u32 unused5;
};
struct fuse_open_in {
- uint32_t flags;
- uint32_t unused;
+ __u32 flags;
+ __u32 unused;
};
struct fuse_create_in {
- uint32_t flags;
- uint32_t mode;
- uint32_t umask;
- uint32_t padding;
+ __u32 flags;
+ __u32 mode;
+ __u32 umask;
+ __u32 padding;
};
struct fuse_open_out {
- uint64_t fh;
- uint32_t open_flags;
- uint32_t padding;
+ __u64 fh;
+ __u32 open_flags;
+ __u32 padding;
};
struct fuse_release_in {
- uint64_t fh;
- uint32_t flags;
- uint32_t release_flags;
- uint64_t lock_owner;
+ __u64 fh;
+ __u32 flags;
+ __u32 release_flags;
+ __u64 lock_owner;
};
struct fuse_flush_in {
- uint64_t fh;
- uint32_t unused;
- uint32_t padding;
- uint64_t lock_owner;
+ __u64 fh;
+ __u32 unused;
+ __u32 padding;
+ __u64 lock_owner;
};
struct fuse_read_in {
- uint64_t fh;
- uint64_t offset;
- uint32_t size;
- uint32_t read_flags;
- uint64_t lock_owner;
- uint32_t flags;
- uint32_t padding;
+ __u64 fh;
+ __u64 offset;
+ __u32 size;
+ __u32 read_flags;
+ __u64 lock_owner;
+ __u32 flags;
+ __u32 padding;
};
#define FUSE_COMPAT_WRITE_IN_SIZE 24
struct fuse_write_in {
- uint64_t fh;
- uint64_t offset;
- uint32_t size;
- uint32_t write_flags;
- uint64_t lock_owner;
- uint32_t flags;
- uint32_t padding;
+ __u64 fh;
+ __u64 offset;
+ __u32 size;
+ __u32 write_flags;
+ __u64 lock_owner;
+ __u32 flags;
+ __u32 padding;
};
struct fuse_write_out {
- uint32_t size;
- uint32_t padding;
+ __u32 size;
+ __u32 padding;
};
#define FUSE_COMPAT_STATFS_SIZE 48
@@ -531,32 +527,32 @@ struct fuse_statfs_out {
};
struct fuse_fsync_in {
- uint64_t fh;
- uint32_t fsync_flags;
- uint32_t padding;
+ __u64 fh;
+ __u32 fsync_flags;
+ __u32 padding;
};
struct fuse_setxattr_in {
- uint32_t size;
- uint32_t flags;
+ __u32 size;
+ __u32 flags;
};
struct fuse_getxattr_in {
- uint32_t size;
- uint32_t padding;
+ __u32 size;
+ __u32 padding;
};
struct fuse_getxattr_out {
- uint32_t size;
- uint32_t padding;
+ __u32 size;
+ __u32 padding;
};
struct fuse_lk_in {
- uint64_t fh;
- uint64_t owner;
+ __u64 fh;
+ __u64 owner;
struct fuse_file_lock lk;
- uint32_t lk_flags;
- uint32_t padding;
+ __u32 lk_flags;
+ __u32 padding;
};
struct fuse_lk_out {
@@ -564,140 +560,140 @@ struct fuse_lk_out {
};
struct fuse_access_in {
- uint32_t mask;
- uint32_t padding;
+ __u32 mask;
+ __u32 padding;
};
struct fuse_init_in {
- uint32_t major;
- uint32_t minor;
- uint32_t max_readahead;
- uint32_t flags;
+ __u32 major;
+ __u32 minor;
+ __u32 max_readahead;
+ __u32 flags;
};
#define FUSE_COMPAT_INIT_OUT_SIZE 8
#define FUSE_COMPAT_22_INIT_OUT_SIZE 24
struct fuse_init_out {
- uint32_t major;
- uint32_t minor;
- uint32_t max_readahead;
- uint32_t flags;
- uint16_t max_background;
- uint16_t congestion_threshold;
- uint32_t max_write;
- uint32_t time_gran;
- uint32_t unused[9];
+ __u32 major;
+ __u32 minor;
+ __u32 max_readahead;
+ __u32 flags;
+ __u16 max_background;
+ __u16 congestion_threshold;
+ __u32 max_write;
+ __u32 time_gran;
+ __u32 unused[9];
};
#define CUSE_INIT_INFO_MAX 4096
struct cuse_init_in {
- uint32_t major;
- uint32_t minor;
- uint32_t unused;
- uint32_t flags;
+ __u32 major;
+ __u32 minor;
+ __u32 unused;
+ __u32 flags;
};
struct cuse_init_out {
- uint32_t major;
- uint32_t minor;
- uint32_t unused;
- uint32_t flags;
- uint32_t max_read;
- uint32_t max_write;
- uint32_t dev_major; /* chardev major */
- uint32_t dev_minor; /* chardev minor */
- uint32_t spare[10];
+ __u32 major;
+ __u32 minor;
+ __u32 unused;
+ __u32 flags;
+ __u32 max_read;
+ __u32 max_write;
+ __u32 dev_major; /* chardev major */
+ __u32 dev_minor; /* chardev minor */
+ __u32 spare[10];
};
struct fuse_interrupt_in {
- uint64_t unique;
+ __u64 unique;
};
struct fuse_bmap_in {
- uint64_t block;
- uint32_t blocksize;
- uint32_t padding;
+ __u64 block;
+ __u32 blocksize;
+ __u32 padding;
};
struct fuse_bmap_out {
- uint64_t block;
+ __u64 block;
};
struct fuse_ioctl_in {
- uint64_t fh;
- uint32_t flags;
- uint32_t cmd;
- uint64_t arg;
- uint32_t in_size;
- uint32_t out_size;
+ __u64 fh;
+ __u32 flags;
+ __u32 cmd;
+ __u64 arg;
+ __u32 in_size;
+ __u32 out_size;
};
struct fuse_ioctl_iovec {
- uint64_t base;
- uint64_t len;
+ __u64 base;
+ __u64 len;
};
struct fuse_ioctl_out {
- int32_t result;
- uint32_t flags;
- uint32_t in_iovs;
- uint32_t out_iovs;
+ __s32 result;
+ __u32 flags;
+ __u32 in_iovs;
+ __u32 out_iovs;
};
struct fuse_poll_in {
- uint64_t fh;
- uint64_t kh;
- uint32_t flags;
- uint32_t events;
+ __u64 fh;
+ __u64 kh;
+ __u32 flags;
+ __u32 events;
};
struct fuse_poll_out {
- uint32_t revents;
- uint32_t padding;
+ __u32 revents;
+ __u32 padding;
};
struct fuse_notify_poll_wakeup_out {
- uint64_t kh;
+ __u64 kh;
};
struct fuse_fallocate_in {
- uint64_t fh;
- uint64_t offset;
- uint64_t length;
- uint32_t mode;
- uint32_t padding;
+ __u64 fh;
+ __u64 offset;
+ __u64 length;
+ __u32 mode;
+ __u32 padding;
};
struct fuse_in_header {
- uint32_t len;
- uint32_t opcode;
- uint64_t unique;
- uint64_t nodeid;
- uint32_t uid;
- uint32_t gid;
- uint32_t pid;
- uint32_t padding;
+ __u32 len;
+ __u32 opcode;
+ __u64 unique;
+ __u64 nodeid;
+ __u32 uid;
+ __u32 gid;
+ __u32 pid;
+ __u32 padding;
};
struct fuse_out_header {
- uint32_t len;
- int32_t error;
- uint64_t unique;
+ __u32 len;
+ __s32 error;
+ __u64 unique;
};
struct fuse_dirent {
- uint64_t ino;
- uint64_t off;
- uint32_t namelen;
- uint32_t type;
+ __u64 ino;
+ __u64 off;
+ __u32 namelen;
+ __u32 type;
char name[];
};
#define FUSE_NAME_OFFSET offsetof(struct fuse_dirent, name)
#define FUSE_DIRENT_ALIGN(x) \
- (((x) + sizeof(uint64_t) - 1) & ~(sizeof(uint64_t) - 1))
+ (((x) + sizeof(__u64) - 1) & ~(sizeof(__u64) - 1))
#define FUSE_DIRENT_SIZE(d) \
FUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET + (d)->namelen)
@@ -712,47 +708,47 @@ struct fuse_direntplus {
FUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET_DIRENTPLUS + (d)->dirent.namelen)
struct fuse_notify_inval_inode_out {
- uint64_t ino;
- int64_t off;
- int64_t len;
+ __u64 ino;
+ __s64 off;
+ __s64 len;
};
struct fuse_notify_inval_entry_out {
- uint64_t parent;
- uint32_t namelen;
- uint32_t padding;
+ __u64 parent;
+ __u32 namelen;
+ __u32 padding;
};
struct fuse_notify_delete_out {
- uint64_t parent;
- uint64_t child;
- uint32_t namelen;
- uint32_t padding;
+ __u64 parent;
+ __u64 child;
+ __u32 namelen;
+ __u32 padding;
};
struct fuse_notify_store_out {
- uint64_t nodeid;
- uint64_t offset;
- uint32_t size;
- uint32_t padding;
+ __u64 nodeid;
+ __u64 offset;
+ __u32 size;
+ __u32 padding;
};
struct fuse_notify_retrieve_out {
- uint64_t notify_unique;
- uint64_t nodeid;
- uint64_t offset;
- uint32_t size;
- uint32_t padding;
+ __u64 notify_unique;
+ __u64 nodeid;
+ __u64 offset;
+ __u32 size;
+ __u32 padding;
};
/* Matches the size of fuse_write_in */
struct fuse_notify_retrieve_in {
- uint64_t dummy1;
- uint64_t offset;
- uint32_t size;
- uint32_t dummy2;
- uint64_t dummy3;
- uint64_t dummy4;
+ __u64 dummy1;
+ __u64 offset;
+ __u32 size;
+ __u32 dummy2;
+ __u64 dummy3;
+ __u64 dummy4;
};
/* Device ioctls: */
-Mikko
^ permalink raw reply related [flat|nested] 206+ messages in thread
* Re: [PATCH v4 71/79] include/uapi/linux/fuse.h: use linux/types.h also in userspace
@ 2015-10-15 21:03 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 21:03 UTC (permalink / raw)
To: Miklos Szeredi; +Cc: Arnd Bergmann, Kernel Mailing List, fuse-devel, Linux API
On Thu, Oct 15, 2015 at 09:25:30PM +0200, Miklos Szeredi wrote:
> On Thu, Oct 15, 2015 at 8:59 PM, Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org> wrote:
> > On Thursday 15 October 2015 20:32:45 Miklos Szeredi wrote:
> >> > In my other patches I got review comments that kernel headers should not
> >> > use <stdint.h> and also Documentation/CodingStyle section 5 says:
> >> >
> >> > (e) Types safe for use in userspace.
> >> >
> >> > In certain structures which are visible to userspace, we cannot
> >> > require C99 types and cannot use the 'u32' form above. Thus, we
> >> > use __u32 and similar types in all structures which are shared
> >> > with userspace.
> >>
> >> Ok, if you cannot require C99, then the __uXX types are the way to go.
> >> But for the fuse API we *can* use C99 types, nothing preventing us
> >> from doing it.
> >
> > What the sentence above means is that you should not rely on the
> > user including <stdint.h> before including a kernel header, and
> > that kernel headers are not allowed to include <stdint.h> themselves,
> > because that would break any pre-C99 user space that defines types
> > with the same names in their own headers and that relies on that
> > header not to be included implicitly.
> >
> > It's possible that it has never been a problem for the fuse headers,
> > but it has been a problem for other headers in the past and what
> > Mikko is trying to achieve is to ensure that none of the kernel
> > headers do this so we can make it an error in 'make headers_install'.
>
> "in some cases including <stdint.h> might be a problem" is not a very
> strong argument in favour of making it an error. And since it would
> be a step backwards for the fuse header I object to making it an
> error.
>
> If this is really such a big issue, then why not make it a warning
> (and add a mechanism to silence that warning)?
I tried compiling fuse userspace library with this patch applied and
it compiles without any problems:
$ make
Making all in include
make[1]: Entering directory '/home/mcfrisk/src/fuse-fuse/include'
make all-am
make[2]: Entering directory '/home/mcfrisk/src/fuse-fuse/include'
make[2]: Leaving directory '/home/mcfrisk/src/fuse-fuse/include'
make[1]: Leaving directory '/home/mcfrisk/src/fuse-fuse/include'
Making all in lib
make[1]: Entering directory '/home/mcfrisk/src/fuse-fuse/lib'
CC fuse.lo
CC fuse_loop_mt.lo
CC fuse_lowlevel.lo
CC cuse_lowlevel.lo
CCLD libfuse3.la
ar: `u' modifier ignored since `D' is the default (see `U')
make[1]: Leaving directory '/home/mcfrisk/src/fuse-fuse/lib'
Making all in util
make[1]: Entering directory '/home/mcfrisk/src/fuse-fuse/util'
make all-am
make[2]: Entering directory '/home/mcfrisk/src/fuse-fuse/util'
make[2]: Nothing to be done for 'all-am'.
make[2]: Leaving directory '/home/mcfrisk/src/fuse-fuse/util'
make[1]: Leaving directory '/home/mcfrisk/src/fuse-fuse/util'
Making all in example
make[1]: Entering directory '/home/mcfrisk/src/fuse-fuse/example'
CCLD fusexmp
CCLD fusexmp_fh
CCLD null
CCLD hello
CCLD hello_ll
CCLD fioc
CCLD fsel
CCLD cusexmp
CCLD fuse_lo-plus
make[1]: Leaving directory '/home/mcfrisk/src/fuse-fuse/example'
Making all in doc
make[1]: Entering directory '/home/mcfrisk/src/fuse-fuse/doc'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/home/mcfrisk/src/fuse-fuse/doc'
make[1]: Entering directory '/home/mcfrisk/src/fuse-fuse'
make[1]: Nothing to be done for 'all-am'.
make[1]: Leaving directory '/home/mcfrisk/src/fuse-fuse'
$ git diff
diff --git a/include/fuse_kernel.h b/include/fuse_kernel.h
index c9aca04..a25e329 100644
--- a/include/fuse_kernel.h
+++ b/include/fuse_kernel.h
@@ -107,11 +107,7 @@
#ifndef _LINUX_FUSE_H
#define _LINUX_FUSE_H
-#ifdef __KERNEL__
#include <linux/types.h>
-#else
-#include <stdint.h>
-#endif
/*
* Version negotiation:
@@ -146,42 +142,42 @@
userspace works under 64bit kernels */
struct fuse_attr {
- uint64_t ino;
- uint64_t size;
- uint64_t blocks;
- uint64_t atime;
- uint64_t mtime;
- uint64_t ctime;
- uint32_t atimensec;
- uint32_t mtimensec;
- uint32_t ctimensec;
- uint32_t mode;
- uint32_t nlink;
- uint32_t uid;
- uint32_t gid;
- uint32_t rdev;
- uint32_t blksize;
- uint32_t padding;
+ __u64 ino;
+ __u64 size;
+ __u64 blocks;
+ __u64 atime;
+ __u64 mtime;
+ __u64 ctime;
+ __u32 atimensec;
+ __u32 mtimensec;
+ __u32 ctimensec;
+ __u32 mode;
+ __u32 nlink;
+ __u32 uid;
+ __u32 gid;
+ __u32 rdev;
+ __u32 blksize;
+ __u32 padding;
};
struct fuse_kstatfs {
- uint64_t blocks;
- uint64_t bfree;
- uint64_t bavail;
- uint64_t files;
- uint64_t ffree;
- uint32_t bsize;
- uint32_t namelen;
- uint32_t frsize;
- uint32_t padding;
- uint32_t spare[6];
+ __u64 blocks;
+ __u64 bfree;
+ __u64 bavail;
+ __u64 files;
+ __u64 ffree;
+ __u32 bsize;
+ __u32 namelen;
+ __u32 frsize;
+ __u32 padding;
+ __u32 spare[6];
};
struct fuse_file_lock {
- uint64_t start;
- uint64_t end;
- uint32_t type;
- uint32_t pid; /* tgid */
+ __u64 start;
+ __u64 end;
+ __u32 type;
+ __u32 pid; /* tgid */
};
/**
@@ -379,149 +375,149 @@ enum fuse_notify_code {
#define FUSE_COMPAT_ENTRY_OUT_SIZE 120
struct fuse_entry_out {
- uint64_t nodeid; /* Inode ID */
- uint64_t generation; /* Inode generation: nodeid:gen must
+ __u64 nodeid; /* Inode ID */
+ __u64 generation; /* Inode generation: nodeid:gen must
be unique for the fs's lifetime */
- uint64_t entry_valid; /* Cache timeout for the name */
- uint64_t attr_valid; /* Cache timeout for the attributes */
- uint32_t entry_valid_nsec;
- uint32_t attr_valid_nsec;
+ __u64 entry_valid; /* Cache timeout for the name */
+ __u64 attr_valid; /* Cache timeout for the attributes */
+ __u32 entry_valid_nsec;
+ __u32 attr_valid_nsec;
struct fuse_attr attr;
};
struct fuse_forget_in {
- uint64_t nlookup;
+ __u64 nlookup;
};
struct fuse_forget_one {
- uint64_t nodeid;
- uint64_t nlookup;
+ __u64 nodeid;
+ __u64 nlookup;
};
struct fuse_batch_forget_in {
- uint32_t count;
- uint32_t dummy;
+ __u32 count;
+ __u32 dummy;
};
struct fuse_getattr_in {
- uint32_t getattr_flags;
- uint32_t dummy;
- uint64_t fh;
+ __u32 getattr_flags;
+ __u32 dummy;
+ __u64 fh;
};
#define FUSE_COMPAT_ATTR_OUT_SIZE 96
struct fuse_attr_out {
- uint64_t attr_valid; /* Cache timeout for the attributes */
- uint32_t attr_valid_nsec;
- uint32_t dummy;
+ __u64 attr_valid; /* Cache timeout for the attributes */
+ __u32 attr_valid_nsec;
+ __u32 dummy;
struct fuse_attr attr;
};
#define FUSE_COMPAT_MKNOD_IN_SIZE 8
struct fuse_mknod_in {
- uint32_t mode;
- uint32_t rdev;
- uint32_t umask;
- uint32_t padding;
+ __u32 mode;
+ __u32 rdev;
+ __u32 umask;
+ __u32 padding;
};
struct fuse_mkdir_in {
- uint32_t mode;
- uint32_t umask;
+ __u32 mode;
+ __u32 umask;
};
struct fuse_rename_in {
- uint64_t newdir;
+ __u64 newdir;
};
struct fuse_rename2_in {
- uint64_t newdir;
- uint32_t flags;
- uint32_t padding;
+ __u64 newdir;
+ __u32 flags;
+ __u32 padding;
};
struct fuse_link_in {
- uint64_t oldnodeid;
+ __u64 oldnodeid;
};
struct fuse_setattr_in {
- uint32_t valid;
- uint32_t padding;
- uint64_t fh;
- uint64_t size;
- uint64_t lock_owner;
- uint64_t atime;
- uint64_t mtime;
- uint64_t ctime;
- uint32_t atimensec;
- uint32_t mtimensec;
- uint32_t ctimensec;
- uint32_t mode;
- uint32_t unused4;
- uint32_t uid;
- uint32_t gid;
- uint32_t unused5;
+ __u32 valid;
+ __u32 padding;
+ __u64 fh;
+ __u64 size;
+ __u64 lock_owner;
+ __u64 atime;
+ __u64 mtime;
+ __u64 ctime;
+ __u32 atimensec;
+ __u32 mtimensec;
+ __u32 ctimensec;
+ __u32 mode;
+ __u32 unused4;
+ __u32 uid;
+ __u32 gid;
+ __u32 unused5;
};
struct fuse_open_in {
- uint32_t flags;
- uint32_t unused;
+ __u32 flags;
+ __u32 unused;
};
struct fuse_create_in {
- uint32_t flags;
- uint32_t mode;
- uint32_t umask;
- uint32_t padding;
+ __u32 flags;
+ __u32 mode;
+ __u32 umask;
+ __u32 padding;
};
struct fuse_open_out {
- uint64_t fh;
- uint32_t open_flags;
- uint32_t padding;
+ __u64 fh;
+ __u32 open_flags;
+ __u32 padding;
};
struct fuse_release_in {
- uint64_t fh;
- uint32_t flags;
- uint32_t release_flags;
- uint64_t lock_owner;
+ __u64 fh;
+ __u32 flags;
+ __u32 release_flags;
+ __u64 lock_owner;
};
struct fuse_flush_in {
- uint64_t fh;
- uint32_t unused;
- uint32_t padding;
- uint64_t lock_owner;
+ __u64 fh;
+ __u32 unused;
+ __u32 padding;
+ __u64 lock_owner;
};
struct fuse_read_in {
- uint64_t fh;
- uint64_t offset;
- uint32_t size;
- uint32_t read_flags;
- uint64_t lock_owner;
- uint32_t flags;
- uint32_t padding;
+ __u64 fh;
+ __u64 offset;
+ __u32 size;
+ __u32 read_flags;
+ __u64 lock_owner;
+ __u32 flags;
+ __u32 padding;
};
#define FUSE_COMPAT_WRITE_IN_SIZE 24
struct fuse_write_in {
- uint64_t fh;
- uint64_t offset;
- uint32_t size;
- uint32_t write_flags;
- uint64_t lock_owner;
- uint32_t flags;
- uint32_t padding;
+ __u64 fh;
+ __u64 offset;
+ __u32 size;
+ __u32 write_flags;
+ __u64 lock_owner;
+ __u32 flags;
+ __u32 padding;
};
struct fuse_write_out {
- uint32_t size;
- uint32_t padding;
+ __u32 size;
+ __u32 padding;
};
#define FUSE_COMPAT_STATFS_SIZE 48
@@ -531,32 +527,32 @@ struct fuse_statfs_out {
};
struct fuse_fsync_in {
- uint64_t fh;
- uint32_t fsync_flags;
- uint32_t padding;
+ __u64 fh;
+ __u32 fsync_flags;
+ __u32 padding;
};
struct fuse_setxattr_in {
- uint32_t size;
- uint32_t flags;
+ __u32 size;
+ __u32 flags;
};
struct fuse_getxattr_in {
- uint32_t size;
- uint32_t padding;
+ __u32 size;
+ __u32 padding;
};
struct fuse_getxattr_out {
- uint32_t size;
- uint32_t padding;
+ __u32 size;
+ __u32 padding;
};
struct fuse_lk_in {
- uint64_t fh;
- uint64_t owner;
+ __u64 fh;
+ __u64 owner;
struct fuse_file_lock lk;
- uint32_t lk_flags;
- uint32_t padding;
+ __u32 lk_flags;
+ __u32 padding;
};
struct fuse_lk_out {
@@ -564,140 +560,140 @@ struct fuse_lk_out {
};
struct fuse_access_in {
- uint32_t mask;
- uint32_t padding;
+ __u32 mask;
+ __u32 padding;
};
struct fuse_init_in {
- uint32_t major;
- uint32_t minor;
- uint32_t max_readahead;
- uint32_t flags;
+ __u32 major;
+ __u32 minor;
+ __u32 max_readahead;
+ __u32 flags;
};
#define FUSE_COMPAT_INIT_OUT_SIZE 8
#define FUSE_COMPAT_22_INIT_OUT_SIZE 24
struct fuse_init_out {
- uint32_t major;
- uint32_t minor;
- uint32_t max_readahead;
- uint32_t flags;
- uint16_t max_background;
- uint16_t congestion_threshold;
- uint32_t max_write;
- uint32_t time_gran;
- uint32_t unused[9];
+ __u32 major;
+ __u32 minor;
+ __u32 max_readahead;
+ __u32 flags;
+ __u16 max_background;
+ __u16 congestion_threshold;
+ __u32 max_write;
+ __u32 time_gran;
+ __u32 unused[9];
};
#define CUSE_INIT_INFO_MAX 4096
struct cuse_init_in {
- uint32_t major;
- uint32_t minor;
- uint32_t unused;
- uint32_t flags;
+ __u32 major;
+ __u32 minor;
+ __u32 unused;
+ __u32 flags;
};
struct cuse_init_out {
- uint32_t major;
- uint32_t minor;
- uint32_t unused;
- uint32_t flags;
- uint32_t max_read;
- uint32_t max_write;
- uint32_t dev_major; /* chardev major */
- uint32_t dev_minor; /* chardev minor */
- uint32_t spare[10];
+ __u32 major;
+ __u32 minor;
+ __u32 unused;
+ __u32 flags;
+ __u32 max_read;
+ __u32 max_write;
+ __u32 dev_major; /* chardev major */
+ __u32 dev_minor; /* chardev minor */
+ __u32 spare[10];
};
struct fuse_interrupt_in {
- uint64_t unique;
+ __u64 unique;
};
struct fuse_bmap_in {
- uint64_t block;
- uint32_t blocksize;
- uint32_t padding;
+ __u64 block;
+ __u32 blocksize;
+ __u32 padding;
};
struct fuse_bmap_out {
- uint64_t block;
+ __u64 block;
};
struct fuse_ioctl_in {
- uint64_t fh;
- uint32_t flags;
- uint32_t cmd;
- uint64_t arg;
- uint32_t in_size;
- uint32_t out_size;
+ __u64 fh;
+ __u32 flags;
+ __u32 cmd;
+ __u64 arg;
+ __u32 in_size;
+ __u32 out_size;
};
struct fuse_ioctl_iovec {
- uint64_t base;
- uint64_t len;
+ __u64 base;
+ __u64 len;
};
struct fuse_ioctl_out {
- int32_t result;
- uint32_t flags;
- uint32_t in_iovs;
- uint32_t out_iovs;
+ __s32 result;
+ __u32 flags;
+ __u32 in_iovs;
+ __u32 out_iovs;
};
struct fuse_poll_in {
- uint64_t fh;
- uint64_t kh;
- uint32_t flags;
- uint32_t events;
+ __u64 fh;
+ __u64 kh;
+ __u32 flags;
+ __u32 events;
};
struct fuse_poll_out {
- uint32_t revents;
- uint32_t padding;
+ __u32 revents;
+ __u32 padding;
};
struct fuse_notify_poll_wakeup_out {
- uint64_t kh;
+ __u64 kh;
};
struct fuse_fallocate_in {
- uint64_t fh;
- uint64_t offset;
- uint64_t length;
- uint32_t mode;
- uint32_t padding;
+ __u64 fh;
+ __u64 offset;
+ __u64 length;
+ __u32 mode;
+ __u32 padding;
};
struct fuse_in_header {
- uint32_t len;
- uint32_t opcode;
- uint64_t unique;
- uint64_t nodeid;
- uint32_t uid;
- uint32_t gid;
- uint32_t pid;
- uint32_t padding;
+ __u32 len;
+ __u32 opcode;
+ __u64 unique;
+ __u64 nodeid;
+ __u32 uid;
+ __u32 gid;
+ __u32 pid;
+ __u32 padding;
};
struct fuse_out_header {
- uint32_t len;
- int32_t error;
- uint64_t unique;
+ __u32 len;
+ __s32 error;
+ __u64 unique;
};
struct fuse_dirent {
- uint64_t ino;
- uint64_t off;
- uint32_t namelen;
- uint32_t type;
+ __u64 ino;
+ __u64 off;
+ __u32 namelen;
+ __u32 type;
char name[];
};
#define FUSE_NAME_OFFSET offsetof(struct fuse_dirent, name)
#define FUSE_DIRENT_ALIGN(x) \
- (((x) + sizeof(uint64_t) - 1) & ~(sizeof(uint64_t) - 1))
+ (((x) + sizeof(__u64) - 1) & ~(sizeof(__u64) - 1))
#define FUSE_DIRENT_SIZE(d) \
FUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET + (d)->namelen)
@@ -712,47 +708,47 @@ struct fuse_direntplus {
FUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET_DIRENTPLUS + (d)->dirent.namelen)
struct fuse_notify_inval_inode_out {
- uint64_t ino;
- int64_t off;
- int64_t len;
+ __u64 ino;
+ __s64 off;
+ __s64 len;
};
struct fuse_notify_inval_entry_out {
- uint64_t parent;
- uint32_t namelen;
- uint32_t padding;
+ __u64 parent;
+ __u32 namelen;
+ __u32 padding;
};
struct fuse_notify_delete_out {
- uint64_t parent;
- uint64_t child;
- uint32_t namelen;
- uint32_t padding;
+ __u64 parent;
+ __u64 child;
+ __u32 namelen;
+ __u32 padding;
};
struct fuse_notify_store_out {
- uint64_t nodeid;
- uint64_t offset;
- uint32_t size;
- uint32_t padding;
+ __u64 nodeid;
+ __u64 offset;
+ __u32 size;
+ __u32 padding;
};
struct fuse_notify_retrieve_out {
- uint64_t notify_unique;
- uint64_t nodeid;
- uint64_t offset;
- uint32_t size;
- uint32_t padding;
+ __u64 notify_unique;
+ __u64 nodeid;
+ __u64 offset;
+ __u32 size;
+ __u32 padding;
};
/* Matches the size of fuse_write_in */
struct fuse_notify_retrieve_in {
- uint64_t dummy1;
- uint64_t offset;
- uint32_t size;
- uint32_t dummy2;
- uint64_t dummy3;
- uint64_t dummy4;
+ __u64 dummy1;
+ __u64 offset;
+ __u32 size;
+ __u32 dummy2;
+ __u64 dummy3;
+ __u64 dummy4;
};
/* Device ioctls: */
-Mikko
^ permalink raw reply related [flat|nested] 206+ messages in thread
* Re: [PATCH v4 23/79] rds.h: use __u8, __u16, __s16, __u32 and __s64 from linux/types.h
@ 2015-10-15 22:00 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 22:00 UTC (permalink / raw)
To: Sowmini Varadhan; +Cc: linux-kernel, David S. Miller, linux-api
On Thu, Oct 15, 2015 at 07:06:14AM -0400, Sowmini Varadhan wrote:
> On (10/15/15 07:56), Mikko Rapeli wrote:
> > Date: Thu, 15 Oct 2015 07:56:01 +0200
> > From: Mikko Rapeli <mikko.rapeli@iki.fi>
> > To: linux-kernel@vger.kernel.org
> > Cc: mikko.rapeli@iki.fi, "David S. Miller" <davem@davemloft.net>, Sowmini
> > Varadhan <sowmini.varadhan@oracle.com>, linux-api@vger.kernel.org
> > Subject: [PATCH v4 23/79] rds.h: use __u8, __u16, __s16, __u32 and __s64
> > from linux/types.h
> > X-Mailer: git-send-email 2.6.1
> >
> > Fixes userspace compilation errors like:
> >
> > linux/rds.h:96:2: error: unknown type name ‘uint8_t’
>
> Can't you just include <stdint.h> in linux/rds.h? (similar to the
> fix for linux/rds)? It would reduce the deltas significantly,
> and portable applications are likely to expect uint8_t etc anyway.
What kind of portability should exported userspace headers from Linux kernel
need?
Reviews to my previous changes NACKed <stdint.h> usage and
Documentation/CodingStyle chapter 5 says:
(e) Types safe for use in userspace.
In certain structures which are visible to userspace, we cannot
require C99 types and cannot use the 'u32' form above. Thus, we
use __u32 and similar types in all structures which are shared
with userspace.
-Mikko
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 23/79] rds.h: use __u8, __u16, __s16, __u32 and __s64 from linux/types.h
@ 2015-10-15 22:00 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 22:00 UTC (permalink / raw)
To: Sowmini Varadhan
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA, David S. Miller,
linux-api-u79uwXL29TY76Z2rM5mHXA
On Thu, Oct 15, 2015 at 07:06:14AM -0400, Sowmini Varadhan wrote:
> On (10/15/15 07:56), Mikko Rapeli wrote:
> > Date: Thu, 15 Oct 2015 07:56:01 +0200
> > From: Mikko Rapeli <mikko.rapeli-X3B1VOXEql0@public.gmane.org>
> > To: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> > Cc: mikko.rapeli-X3B1VOXEql0@public.gmane.org, "David S. Miller" <davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>, Sowmini
> > Varadhan <sowmini.varadhan-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>, linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> > Subject: [PATCH v4 23/79] rds.h: use __u8, __u16, __s16, __u32 and __s64
> > from linux/types.h
> > X-Mailer: git-send-email 2.6.1
> >
> > Fixes userspace compilation errors like:
> >
> > linux/rds.h:96:2: error: unknown type name ‘uint8_t’
>
> Can't you just include <stdint.h> in linux/rds.h? (similar to the
> fix for linux/rds)? It would reduce the deltas significantly,
> and portable applications are likely to expect uint8_t etc anyway.
What kind of portability should exported userspace headers from Linux kernel
need?
Reviews to my previous changes NACKed <stdint.h> usage and
Documentation/CodingStyle chapter 5 says:
(e) Types safe for use in userspace.
In certain structures which are visible to userspace, we cannot
require C99 types and cannot use the 'u32' form above. Thus, we
use __u32 and similar types in all structures which are shared
with userspace.
-Mikko
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 23/79] rds.h: use __u8, __u16, __s16, __u32 and __s64 from linux/types.h
2015-10-15 22:00 ` Mikko Rapeli
(?)
@ 2015-10-15 22:21 ` Sowmini Varadhan
2015-10-15 22:39 ` Mikko Rapeli
-1 siblings, 1 reply; 206+ messages in thread
From: Sowmini Varadhan @ 2015-10-15 22:21 UTC (permalink / raw)
To: Mikko Rapeli; +Cc: linux-kernel, David S. Miller, linux-api
On (10/16/15 01:00), Mikko Rapeli wrote:
>
> What kind of portability should exported userspace headers from Linux kernel
> need?
>
> Reviews to my previous changes NACKed <stdint.h> usage and
> Documentation/CodingStyle chapter 5 says:
>
> (e) Types safe for use in userspace.
>
> In certain structures which are visible to userspace, we cannot
> require C99 types and cannot use the 'u32' form above. Thus, we
> use __u32 and similar types in all structures which are shared
> with userspace.
Let's be clear: we are not talking about u32 vs __u32, we are talking
about uint32_t vs __u32 in your patch.
I dont have the context of your "previous changes NACKed.." etc.
Why can we not require C99 types in rds.h?
Why isnt that a problem for, say, <netinet/in.h> which includes
<stdint.h>?
--Sowmini
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 23/79] rds.h: use __u8, __u16, __s16, __u32 and __s64 from linux/types.h
@ 2015-10-15 22:39 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 22:39 UTC (permalink / raw)
To: Sowmini Varadhan; +Cc: linux-kernel, David S. Miller, linux-api
On Thu, Oct 15, 2015 at 06:21:05PM -0400, Sowmini Varadhan wrote:
> On (10/16/15 01:00), Mikko Rapeli wrote:
> >
> > What kind of portability should exported userspace headers from Linux kernel
> > need?
> >
> > Reviews to my previous changes NACKed <stdint.h> usage and
> > Documentation/CodingStyle chapter 5 says:
> >
> > (e) Types safe for use in userspace.
> >
> > In certain structures which are visible to userspace, we cannot
> > require C99 types and cannot use the 'u32' form above. Thus, we
> > use __u32 and similar types in all structures which are shared
> > with userspace.
>
> Let's be clear: we are not talking about u32 vs __u32, we are talking
> about uint32_t vs __u32 in your patch.
>
> I dont have the context of your "previous changes NACKed.." etc.
> Why can we not require C99 types in rds.h?
Links to all previous reviews are here:
https://lkml.org/lkml/2015/10/15/22
"uint32_t vs __u32" nail is:
https://lkml.org/lkml/2015/6/1/160
> Why isnt that a problem for, say, <netinet/in.h> which includes
> <stdint.h>?
<netinet/in.h> isn't from Linux kernel, it comes from libc.
<linux/in.h> is from Linux kernel and that does not include <stdint.h>.
But this brough <linux/libc-compat.h> to my attention so thanks for that.
Maybe the <time.h> vs. <linux/time.h> conflict could be resolved with it.
-Mikko
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 23/79] rds.h: use __u8, __u16, __s16, __u32 and __s64 from linux/types.h
@ 2015-10-15 22:39 ` Mikko Rapeli
0 siblings, 0 replies; 206+ messages in thread
From: Mikko Rapeli @ 2015-10-15 22:39 UTC (permalink / raw)
To: Sowmini Varadhan
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA, David S. Miller,
linux-api-u79uwXL29TY76Z2rM5mHXA
On Thu, Oct 15, 2015 at 06:21:05PM -0400, Sowmini Varadhan wrote:
> On (10/16/15 01:00), Mikko Rapeli wrote:
> >
> > What kind of portability should exported userspace headers from Linux kernel
> > need?
> >
> > Reviews to my previous changes NACKed <stdint.h> usage and
> > Documentation/CodingStyle chapter 5 says:
> >
> > (e) Types safe for use in userspace.
> >
> > In certain structures which are visible to userspace, we cannot
> > require C99 types and cannot use the 'u32' form above. Thus, we
> > use __u32 and similar types in all structures which are shared
> > with userspace.
>
> Let's be clear: we are not talking about u32 vs __u32, we are talking
> about uint32_t vs __u32 in your patch.
>
> I dont have the context of your "previous changes NACKed.." etc.
> Why can we not require C99 types in rds.h?
Links to all previous reviews are here:
https://lkml.org/lkml/2015/10/15/22
"uint32_t vs __u32" nail is:
https://lkml.org/lkml/2015/6/1/160
> Why isnt that a problem for, say, <netinet/in.h> which includes
> <stdint.h>?
<netinet/in.h> isn't from Linux kernel, it comes from libc.
<linux/in.h> is from Linux kernel and that does not include <stdint.h>.
But this brough <linux/libc-compat.h> to my attention so thanks for that.
Maybe the <time.h> vs. <linux/time.h> conflict could be resolved with it.
-Mikko
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 23/79] rds.h: use __u8, __u16, __s16, __u32 and __s64 from linux/types.h
@ 2015-10-15 23:03 ` Sowmini Varadhan
0 siblings, 0 replies; 206+ messages in thread
From: Sowmini Varadhan @ 2015-10-15 23:03 UTC (permalink / raw)
To: Mikko Rapeli; +Cc: linux-kernel, David S. Miller, linux-api
On (10/16/15 01:39), Mikko Rapeli wrote:
> "uint32_t vs __u32" nail is:
> https://lkml.org/lkml/2015/6/1/160
shrug. BTW, doesn't having the exported rds.h use __foo everywhere
actually end up with the result that "the kernel use the same names
as user space"
--Sowmini
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 23/79] rds.h: use __u8, __u16, __s16, __u32 and __s64 from linux/types.h
@ 2015-10-15 23:03 ` Sowmini Varadhan
0 siblings, 0 replies; 206+ messages in thread
From: Sowmini Varadhan @ 2015-10-15 23:03 UTC (permalink / raw)
To: Mikko Rapeli
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA, David S. Miller,
linux-api-u79uwXL29TY76Z2rM5mHXA
On (10/16/15 01:39), Mikko Rapeli wrote:
> "uint32_t vs __u32" nail is:
> https://lkml.org/lkml/2015/6/1/160
shrug. BTW, doesn't having the exported rds.h use __foo everywhere
actually end up with the result that "the kernel use the same names
as user space"
--Sowmini
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 10/79] via_drm.h: move struct via_file_private definition to drivers/gpu/drm/via/via_drv.h
2015-10-15 5:55 ` [PATCH v4 10/79] via_drm.h: move struct via_file_private definition to drivers/gpu/drm/via/via_drv.h Mikko Rapeli
@ 2015-10-21 14:36 ` Emil Velikov
0 siblings, 0 replies; 206+ messages in thread
From: Emil Velikov @ 2015-10-21 14:36 UTC (permalink / raw)
To: Mikko Rapeli, Daniel Vetter
Cc: Linux-Kernel@Vger. Kernel. Org, ML dri-devel, open list:ABI/API
On 15 October 2015 at 06:55, Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
> Fixes userspace compile error since list_head is not exported to userspace
> headers.
>
> Suggested by Emil Velikov <emil.l.velikov@gmail.com> at
> https://lkml.org/lkml/2015/6/3/792
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
We're safe as the only users of the struct already include via_drv.h.
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Daniel can you pick this up (esp. since you added it with commit
c828e20456301b0f5192a1f75e8bf8a6afd15551)
Thanks
Emil
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 10/79] via_drm.h: move struct via_file_private definition to drivers/gpu/drm/via/via_drv.h
@ 2015-10-21 14:36 ` Emil Velikov
0 siblings, 0 replies; 206+ messages in thread
From: Emil Velikov @ 2015-10-21 14:36 UTC (permalink / raw)
To: Mikko Rapeli, Daniel Vetter
Cc: open list:ABI/API, Linux-Kernel@Vger. Kernel. Org, ML dri-devel
On 15 October 2015 at 06:55, Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
> Fixes userspace compile error since list_head is not exported to userspace
> headers.
>
> Suggested by Emil Velikov <emil.l.velikov@gmail.com> at
> https://lkml.org/lkml/2015/6/3/792
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
We're safe as the only users of the struct already include via_drv.h.
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Daniel can you pick this up (esp. since you added it with commit
c828e20456301b0f5192a1f75e8bf8a6afd15551)
Thanks
Emil
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 12/79] include/uapi/drm/sis_drm.h: move sis_file_private to drivers/gpu/drm/sis/sis_drv.h
2015-10-15 5:55 ` [PATCH v4 12/79] include/uapi/drm/sis_drm.h: move sis_file_private to drivers/gpu/drm/sis/sis_drv.h Mikko Rapeli
@ 2015-10-21 14:39 ` Emil Velikov
2015-10-21 15:34 ` Daniel Vetter
0 siblings, 1 reply; 206+ messages in thread
From: Emil Velikov @ 2015-10-21 14:39 UTC (permalink / raw)
To: Mikko Rapeli, Daniel Vetter
Cc: Linux-Kernel@Vger. Kernel. Org, ML dri-devel, open list:ABI/API
On 15 October 2015 at 06:55, Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
> Fixes userspace compile error:
>
> drm/sis_drm.h:68:19: error: field ‘obj_list’ has incomplete type
> struct list_head obj_list;
>
> Suggested by Emil Velikov <emil.l.velikov@gmail.com> at
> https://lkml.org/lkml/2015/6/3/792
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
> ---
Analogous to the via patch. Daniel can you please pick this one as well ?
Hunk was added with commit fdc0b8a63c1124bb025a2846d41531a123845740
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Thanks
Emil
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 09/79] via_drm.h: don't include non-existing via_drmclient.h
2015-10-15 5:55 ` [PATCH v4 09/79] via_drm.h: don't include non-existing via_drmclient.h Mikko Rapeli
@ 2015-10-21 15:01 ` Emil Velikov
0 siblings, 0 replies; 206+ messages in thread
From: Emil Velikov @ 2015-10-21 15:01 UTC (permalink / raw)
To: Mikko Rapeli
Cc: Linux-Kernel@Vger. Kernel. Org, ML dri-devel, open list:ABI/API
On 15 October 2015 at 06:55, Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
> Fixes compiler error:
>
> drm/via_drm.h:36:27: fatal error: via_drmclient.h: No such file or directory
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
> ---
> include/uapi/drm/via_drm.h | 3 ---
> 1 file changed, 3 deletions(-)
>
> diff --git a/include/uapi/drm/via_drm.h b/include/uapi/drm/via_drm.h
> index 8b0533c..d19c0e2 100644
> --- a/include/uapi/drm/via_drm.h
> +++ b/include/uapi/drm/via_drm.h
> @@ -33,9 +33,6 @@
> #ifndef _VIA_DEFINES_
> #define _VIA_DEFINES_
>
> -#ifndef __KERNEL__
> -#include "via_drmclient.h"
> -#endif
>
Now this one is messy. If we remove it, existing userspace [0] won't
be able to build. As they don't include the above header where needed,
but instead rely on via_drm.h. Despite the fact that each user
provides its own copy of via_drmclient.h.
There is some very old hardware/software involved so I'm not sure how
much of a real issue this patch will be. If the maintainers decide to
pick it up, let me know and I'll roll a fix for the ddx.
-Emil
[0] There are two users afaict - the via dri mesa module and
xf86-video-via. With the former nuked some 5 years ago with mesa
commit e4344161bde2e24fcfba65d30d58f087bd8bf94d
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 09/79] via_drm.h: don't include non-existing via_drmclient.h
@ 2015-10-21 15:01 ` Emil Velikov
0 siblings, 0 replies; 206+ messages in thread
From: Emil Velikov @ 2015-10-21 15:01 UTC (permalink / raw)
To: Mikko Rapeli
Cc: open list:ABI/API, Linux-Kernel@Vger. Kernel. Org, ML dri-devel
On 15 October 2015 at 06:55, Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
> Fixes compiler error:
>
> drm/via_drm.h:36:27: fatal error: via_drmclient.h: No such file or directory
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
> ---
> include/uapi/drm/via_drm.h | 3 ---
> 1 file changed, 3 deletions(-)
>
> diff --git a/include/uapi/drm/via_drm.h b/include/uapi/drm/via_drm.h
> index 8b0533c..d19c0e2 100644
> --- a/include/uapi/drm/via_drm.h
> +++ b/include/uapi/drm/via_drm.h
> @@ -33,9 +33,6 @@
> #ifndef _VIA_DEFINES_
> #define _VIA_DEFINES_
>
> -#ifndef __KERNEL__
> -#include "via_drmclient.h"
> -#endif
>
Now this one is messy. If we remove it, existing userspace [0] won't
be able to build. As they don't include the above header where needed,
but instead rely on via_drm.h. Despite the fact that each user
provides its own copy of via_drmclient.h.
There is some very old hardware/software involved so I'm not sure how
much of a real issue this patch will be. If the maintainers decide to
pick it up, let me know and I'll roll a fix for the ddx.
-Emil
[0] There are two users afaict - the via dri mesa module and
xf86-video-via. With the former nuked some 5 years ago with mesa
commit e4344161bde2e24fcfba65d30d58f087bd8bf94d
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 04/79] drm_mode.h: use __u32 and __u64 from linux/types.h
@ 2015-10-21 15:09 ` Emil Velikov
0 siblings, 0 replies; 206+ messages in thread
From: Emil Velikov @ 2015-10-21 15:09 UTC (permalink / raw)
To: Mikko Rapeli
Cc: Alex Deucher, open list:ABI/API, LKML, Maling list - DRI developers
Hi Alex,
On 15 October 2015 at 14:48, Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
> On Thu, Oct 15, 2015 at 09:32:10AM -0400, Alex Deucher wrote:
>> On Thu, Oct 15, 2015 at 1:55 AM, Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
>> > Fixes userspace compilation error:
>> >
>> > drm/drm_mode.h:472:2: error: unknown type name ‘uint32_t’
>> >
>> > Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
>>
>> NACK on all these type conversions. This has not been a problem for
>> years and years and the result looks terrible.
>
> Documentation/CodingStyle, section 5
>
> (e) Types safe for use in userspace.
>
> In certain structures which are visible to userspace, we cannot
> require C99 types and cannot use the 'u32' form above. Thus, we
> use __u32 and similar types in all structures which are shared
> with userspace.
>
> I have only been looking at kernel headers from userspace occationally in
> the past 10 years and had a several cases where the provided headers did
> not compile when included into trivial programs trying to use the structs
> for an ioctl() for example. This long lasting problem triggered me to write
> a test for this and provide these fixes too. In previous reviews usage
> of <stdint.h> and its types in kernel headers was already NACK'ed
> so I changed several places from uint32_t's to __u32.
>
> With these changes it is btw trivial now to add a grep test the there
> are no uint32_t's in include/uapi/ anymore, thus enforcing that coding style
> rule.
>
Based of the reply from Mikko, can you please elaborate your concern ?
Are you thinking about some corner case where this may cause breakage,
or it's solely on stylistic point of view ?
Over the last few years we've been doing some ad-hoc 'synchronisation'
with the headers in libdrm, and this will get us one step closer to
doing things properly.
Fwiw I fully support these changes, as does Gustavo for exynos and Rob for msm.
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Thanks
Emil
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 04/79] drm_mode.h: use __u32 and __u64 from linux/types.h
@ 2015-10-21 15:09 ` Emil Velikov
0 siblings, 0 replies; 206+ messages in thread
From: Emil Velikov @ 2015-10-21 15:09 UTC (permalink / raw)
To: Mikko Rapeli
Cc: Alex Deucher, open list:ABI/API, LKML, Maling list - DRI developers
Hi Alex,
On 15 October 2015 at 14:48, Mikko Rapeli <mikko.rapeli-X3B1VOXEql0@public.gmane.org> wrote:
> On Thu, Oct 15, 2015 at 09:32:10AM -0400, Alex Deucher wrote:
>> On Thu, Oct 15, 2015 at 1:55 AM, Mikko Rapeli <mikko.rapeli-X3B1VOXEql0@public.gmane.org> wrote:
>> > Fixes userspace compilation error:
>> >
>> > drm/drm_mode.h:472:2: error: unknown type name ‘uint32_t’
>> >
>> > Signed-off-by: Mikko Rapeli <mikko.rapeli-X3B1VOXEql0@public.gmane.org>
>>
>> NACK on all these type conversions. This has not been a problem for
>> years and years and the result looks terrible.
>
> Documentation/CodingStyle, section 5
>
> (e) Types safe for use in userspace.
>
> In certain structures which are visible to userspace, we cannot
> require C99 types and cannot use the 'u32' form above. Thus, we
> use __u32 and similar types in all structures which are shared
> with userspace.
>
> I have only been looking at kernel headers from userspace occationally in
> the past 10 years and had a several cases where the provided headers did
> not compile when included into trivial programs trying to use the structs
> for an ioctl() for example. This long lasting problem triggered me to write
> a test for this and provide these fixes too. In previous reviews usage
> of <stdint.h> and its types in kernel headers was already NACK'ed
> so I changed several places from uint32_t's to __u32.
>
> With these changes it is btw trivial now to add a grep test the there
> are no uint32_t's in include/uapi/ anymore, thus enforcing that coding style
> rule.
>
Based of the reply from Mikko, can you please elaborate your concern ?
Are you thinking about some corner case where this may cause breakage,
or it's solely on stylistic point of view ?
Over the last few years we've been doing some ad-hoc 'synchronisation'
with the headers in libdrm, and this will get us one step closer to
doing things properly.
Fwiw I fully support these changes, as does Gustavo for exynos and Rob for msm.
Reviewed-by: Emil Velikov <emil.l.velikov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Thanks
Emil
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 04/79] drm_mode.h: use __u32 and __u64 from linux/types.h
2015-10-21 15:09 ` Emil Velikov
@ 2015-10-21 15:18 ` Alex Deucher
-1 siblings, 0 replies; 206+ messages in thread
From: Alex Deucher @ 2015-10-21 15:18 UTC (permalink / raw)
To: Emil Velikov
Cc: Mikko Rapeli, open list:ABI/API, LKML, Maling list - DRI developers
On Wed, Oct 21, 2015 at 11:09 AM, Emil Velikov <emil.l.velikov@gmail.com> wrote:
> Hi Alex,
>
> On 15 October 2015 at 14:48, Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
>> On Thu, Oct 15, 2015 at 09:32:10AM -0400, Alex Deucher wrote:
>>> On Thu, Oct 15, 2015 at 1:55 AM, Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
>>> > Fixes userspace compilation error:
>>> >
>>> > drm/drm_mode.h:472:2: error: unknown type name ‘uint32_t’
>>> >
>>> > Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
>>>
>>> NACK on all these type conversions. This has not been a problem for
>>> years and years and the result looks terrible.
>>
>> Documentation/CodingStyle, section 5
>>
>> (e) Types safe for use in userspace.
>>
>> In certain structures which are visible to userspace, we cannot
>> require C99 types and cannot use the 'u32' form above. Thus, we
>> use __u32 and similar types in all structures which are shared
>> with userspace.
>>
>> I have only been looking at kernel headers from userspace occationally in
>> the past 10 years and had a several cases where the provided headers did
>> not compile when included into trivial programs trying to use the structs
>> for an ioctl() for example. This long lasting problem triggered me to write
>> a test for this and provide these fixes too. In previous reviews usage
>> of <stdint.h> and its types in kernel headers was already NACK'ed
>> so I changed several places from uint32_t's to __u32.
>>
>> With these changes it is btw trivial now to add a grep test the there
>> are no uint32_t's in include/uapi/ anymore, thus enforcing that coding style
>> rule.
>>
> Based of the reply from Mikko, can you please elaborate your concern ?
> Are you thinking about some corner case where this may cause breakage,
> or it's solely on stylistic point of view ?
Style.
>
> Over the last few years we've been doing some ad-hoc 'synchronisation'
> with the headers in libdrm, and this will get us one step closer to
> doing things properly.
How does this affect libdrm one way or another?
Alex
>
> Fwiw I fully support these changes, as does Gustavo for exynos and Rob for msm.
> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
>
> Thanks
> Emil
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 04/79] drm_mode.h: use __u32 and __u64 from linux/types.h
@ 2015-10-21 15:18 ` Alex Deucher
0 siblings, 0 replies; 206+ messages in thread
From: Alex Deucher @ 2015-10-21 15:18 UTC (permalink / raw)
To: Emil Velikov
Cc: Mikko Rapeli, LKML, Maling list - DRI developers, open list:ABI/API
On Wed, Oct 21, 2015 at 11:09 AM, Emil Velikov <emil.l.velikov@gmail.com> wrote:
> Hi Alex,
>
> On 15 October 2015 at 14:48, Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
>> On Thu, Oct 15, 2015 at 09:32:10AM -0400, Alex Deucher wrote:
>>> On Thu, Oct 15, 2015 at 1:55 AM, Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
>>> > Fixes userspace compilation error:
>>> >
>>> > drm/drm_mode.h:472:2: error: unknown type name ‘uint32_t’
>>> >
>>> > Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
>>>
>>> NACK on all these type conversions. This has not been a problem for
>>> years and years and the result looks terrible.
>>
>> Documentation/CodingStyle, section 5
>>
>> (e) Types safe for use in userspace.
>>
>> In certain structures which are visible to userspace, we cannot
>> require C99 types and cannot use the 'u32' form above. Thus, we
>> use __u32 and similar types in all structures which are shared
>> with userspace.
>>
>> I have only been looking at kernel headers from userspace occationally in
>> the past 10 years and had a several cases where the provided headers did
>> not compile when included into trivial programs trying to use the structs
>> for an ioctl() for example. This long lasting problem triggered me to write
>> a test for this and provide these fixes too. In previous reviews usage
>> of <stdint.h> and its types in kernel headers was already NACK'ed
>> so I changed several places from uint32_t's to __u32.
>>
>> With these changes it is btw trivial now to add a grep test the there
>> are no uint32_t's in include/uapi/ anymore, thus enforcing that coding style
>> rule.
>>
> Based of the reply from Mikko, can you please elaborate your concern ?
> Are you thinking about some corner case where this may cause breakage,
> or it's solely on stylistic point of view ?
Style.
>
> Over the last few years we've been doing some ad-hoc 'synchronisation'
> with the headers in libdrm, and this will get us one step closer to
> doing things properly.
How does this affect libdrm one way or another?
Alex
>
> Fwiw I fully support these changes, as does Gustavo for exynos and Rob for msm.
> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
>
> Thanks
> Emil
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 10/79] via_drm.h: move struct via_file_private definition to drivers/gpu/drm/via/via_drv.h
@ 2015-10-21 15:33 ` Daniel Vetter
0 siblings, 0 replies; 206+ messages in thread
From: Daniel Vetter @ 2015-10-21 15:33 UTC (permalink / raw)
To: Emil Velikov
Cc: Mikko Rapeli, Daniel Vetter, Linux-Kernel@Vger. Kernel. Org,
ML dri-devel, open list:ABI/API
On Wed, Oct 21, 2015 at 03:36:22PM +0100, Emil Velikov wrote:
> On 15 October 2015 at 06:55, Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
> > Fixes userspace compile error since list_head is not exported to userspace
> > headers.
> >
> > Suggested by Emil Velikov <emil.l.velikov@gmail.com> at
> > https://lkml.org/lkml/2015/6/3/792
> >
> > Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
> We're safe as the only users of the struct already include via_drv.h.
>
> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
>
> Daniel can you pick this up (esp. since you added it with commit
> c828e20456301b0f5192a1f75e8bf8a6afd15551)
Dave already applied it.
-Daniel
>
> Thanks
> Emil
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 10/79] via_drm.h: move struct via_file_private definition to drivers/gpu/drm/via/via_drv.h
@ 2015-10-21 15:33 ` Daniel Vetter
0 siblings, 0 replies; 206+ messages in thread
From: Daniel Vetter @ 2015-10-21 15:33 UTC (permalink / raw)
To: Emil Velikov
Cc: Mikko Rapeli, Daniel Vetter, Linux-Kernel@Vger. Kernel. Org,
ML dri-devel, open list:ABI/API
On Wed, Oct 21, 2015 at 03:36:22PM +0100, Emil Velikov wrote:
> On 15 October 2015 at 06:55, Mikko Rapeli <mikko.rapeli-X3B1VOXEql0@public.gmane.org> wrote:
> > Fixes userspace compile error since list_head is not exported to userspace
> > headers.
> >
> > Suggested by Emil Velikov <emil.l.velikov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> at
> > https://lkml.org/lkml/2015/6/3/792
> >
> > Signed-off-by: Mikko Rapeli <mikko.rapeli-X3B1VOXEql0@public.gmane.org>
> We're safe as the only users of the struct already include via_drv.h.
>
> Reviewed-by: Emil Velikov <emil.l.velikov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>
> Daniel can you pick this up (esp. since you added it with commit
> c828e20456301b0f5192a1f75e8bf8a6afd15551)
Dave already applied it.
-Daniel
>
> Thanks
> Emil
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 12/79] include/uapi/drm/sis_drm.h: move sis_file_private to drivers/gpu/drm/sis/sis_drv.h
2015-10-21 14:39 ` Emil Velikov
@ 2015-10-21 15:34 ` Daniel Vetter
0 siblings, 0 replies; 206+ messages in thread
From: Daniel Vetter @ 2015-10-21 15:34 UTC (permalink / raw)
To: Emil Velikov
Cc: Mikko Rapeli, Daniel Vetter, Linux-Kernel@Vger. Kernel. Org,
ML dri-devel, open list:ABI/API
On Wed, Oct 21, 2015 at 03:39:07PM +0100, Emil Velikov wrote:
> On 15 October 2015 at 06:55, Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
> > Fixes userspace compile error:
> >
> > drm/sis_drm.h:68:19: error: field ‘obj_list’ has incomplete type
> > struct list_head obj_list;
> >
> > Suggested by Emil Velikov <emil.l.velikov@gmail.com> at
> > https://lkml.org/lkml/2015/6/3/792
> >
> > Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
> > ---
> Analogous to the via patch. Daniel can you please pick this one as well ?
>
> Hunk was added with commit fdc0b8a63c1124bb025a2846d41531a123845740
>
> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Same deal, already merged.
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 12/79] include/uapi/drm/sis_drm.h: move sis_file_private to drivers/gpu/drm/sis/sis_drv.h
@ 2015-10-21 15:34 ` Daniel Vetter
0 siblings, 0 replies; 206+ messages in thread
From: Daniel Vetter @ 2015-10-21 15:34 UTC (permalink / raw)
To: Emil Velikov
Cc: Mikko Rapeli, open list:ABI/API, Linux-Kernel@Vger. Kernel. Org,
ML dri-devel, Daniel Vetter
On Wed, Oct 21, 2015 at 03:39:07PM +0100, Emil Velikov wrote:
> On 15 October 2015 at 06:55, Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
> > Fixes userspace compile error:
> >
> > drm/sis_drm.h:68:19: error: field ‘obj_list’ has incomplete type
> > struct list_head obj_list;
> >
> > Suggested by Emil Velikov <emil.l.velikov@gmail.com> at
> > https://lkml.org/lkml/2015/6/3/792
> >
> > Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
> > ---
> Analogous to the via patch. Daniel can you please pick this one as well ?
>
> Hunk was added with commit fdc0b8a63c1124bb025a2846d41531a123845740
>
> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Same deal, already merged.
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 04/79] drm_mode.h: use __u32 and __u64 from linux/types.h
2015-10-21 15:18 ` Alex Deucher
@ 2015-10-21 16:21 ` Emil Velikov
-1 siblings, 0 replies; 206+ messages in thread
From: Emil Velikov @ 2015-10-21 16:21 UTC (permalink / raw)
To: Alex Deucher
Cc: Mikko Rapeli, open list:ABI/API, LKML, Maling list - DRI developers
On 21 October 2015 at 16:18, Alex Deucher <alexdeucher@gmail.com> wrote:
> On Wed, Oct 21, 2015 at 11:09 AM, Emil Velikov <emil.l.velikov@gmail.com> wrote:
>> Hi Alex,
>>
>> On 15 October 2015 at 14:48, Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
>>> On Thu, Oct 15, 2015 at 09:32:10AM -0400, Alex Deucher wrote:
>>>> On Thu, Oct 15, 2015 at 1:55 AM, Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
>>>> > Fixes userspace compilation error:
>>>> >
>>>> > drm/drm_mode.h:472:2: error: unknown type name ‘uint32_t’
>>>> >
>>>> > Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
>>>>
>>>> NACK on all these type conversions. This has not been a problem for
>>>> years and years and the result looks terrible.
>>>
>>> Documentation/CodingStyle, section 5
>>>
>>> (e) Types safe for use in userspace.
>>>
>>> In certain structures which are visible to userspace, we cannot
>>> require C99 types and cannot use the 'u32' form above. Thus, we
>>> use __u32 and similar types in all structures which are shared
>>> with userspace.
>>>
>>> I have only been looking at kernel headers from userspace occationally in
>>> the past 10 years and had a several cases where the provided headers did
>>> not compile when included into trivial programs trying to use the structs
>>> for an ioctl() for example. This long lasting problem triggered me to write
>>> a test for this and provide these fixes too. In previous reviews usage
>>> of <stdint.h> and its types in kernel headers was already NACK'ed
>>> so I changed several places from uint32_t's to __u32.
>>>
>>> With these changes it is btw trivial now to add a grep test the there
>>> are no uint32_t's in include/uapi/ anymore, thus enforcing that coding style
>>> rule.
>>>
>> Based of the reply from Mikko, can you please elaborate your concern ?
>> Are you thinking about some corner case where this may cause breakage,
>> or it's solely on stylistic point of view ?
>
> Style.
>
In that case shouldn't the kernel coding style (not to mention the
issues with stdint.h types Linus has brought a while back) be
considered/prevail ?
>>
>> Over the last few years we've been doing some ad-hoc 'synchronisation'
>> with the headers in libdrm, and this will get us one step closer to
>> doing things properly.
>
> How does this affect libdrm one way or another?
>
In a strange way. Some (most?) distributions do not ship the uapi
headers from the kernel, but rely on the ones in libdrm. Due to
various issues (as addressed in the series) we have not synchronised
the headers, thus users such as the gallium radeon winsys has ended up
redefining/duplicating internally.
Thanks
Emil
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 04/79] drm_mode.h: use __u32 and __u64 from linux/types.h
@ 2015-10-21 16:21 ` Emil Velikov
0 siblings, 0 replies; 206+ messages in thread
From: Emil Velikov @ 2015-10-21 16:21 UTC (permalink / raw)
To: Alex Deucher
Cc: Mikko Rapeli, LKML, Maling list - DRI developers, open list:ABI/API
On 21 October 2015 at 16:18, Alex Deucher <alexdeucher@gmail.com> wrote:
> On Wed, Oct 21, 2015 at 11:09 AM, Emil Velikov <emil.l.velikov@gmail.com> wrote:
>> Hi Alex,
>>
>> On 15 October 2015 at 14:48, Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
>>> On Thu, Oct 15, 2015 at 09:32:10AM -0400, Alex Deucher wrote:
>>>> On Thu, Oct 15, 2015 at 1:55 AM, Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
>>>> > Fixes userspace compilation error:
>>>> >
>>>> > drm/drm_mode.h:472:2: error: unknown type name ‘uint32_t’
>>>> >
>>>> > Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
>>>>
>>>> NACK on all these type conversions. This has not been a problem for
>>>> years and years and the result looks terrible.
>>>
>>> Documentation/CodingStyle, section 5
>>>
>>> (e) Types safe for use in userspace.
>>>
>>> In certain structures which are visible to userspace, we cannot
>>> require C99 types and cannot use the 'u32' form above. Thus, we
>>> use __u32 and similar types in all structures which are shared
>>> with userspace.
>>>
>>> I have only been looking at kernel headers from userspace occationally in
>>> the past 10 years and had a several cases where the provided headers did
>>> not compile when included into trivial programs trying to use the structs
>>> for an ioctl() for example. This long lasting problem triggered me to write
>>> a test for this and provide these fixes too. In previous reviews usage
>>> of <stdint.h> and its types in kernel headers was already NACK'ed
>>> so I changed several places from uint32_t's to __u32.
>>>
>>> With these changes it is btw trivial now to add a grep test the there
>>> are no uint32_t's in include/uapi/ anymore, thus enforcing that coding style
>>> rule.
>>>
>> Based of the reply from Mikko, can you please elaborate your concern ?
>> Are you thinking about some corner case where this may cause breakage,
>> or it's solely on stylistic point of view ?
>
> Style.
>
In that case shouldn't the kernel coding style (not to mention the
issues with stdint.h types Linus has brought a while back) be
considered/prevail ?
>>
>> Over the last few years we've been doing some ad-hoc 'synchronisation'
>> with the headers in libdrm, and this will get us one step closer to
>> doing things properly.
>
> How does this affect libdrm one way or another?
>
In a strange way. Some (most?) distributions do not ship the uapi
headers from the kernel, but rely on the ones in libdrm. Due to
various issues (as addressed in the series) we have not synchronised
the headers, thus users such as the gallium radeon winsys has ended up
redefining/duplicating internally.
Thanks
Emil
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 10/79] via_drm.h: move struct via_file_private definition to drivers/gpu/drm/via/via_drv.h
@ 2015-10-21 16:25 ` Emil Velikov
0 siblings, 0 replies; 206+ messages in thread
From: Emil Velikov @ 2015-10-21 16:25 UTC (permalink / raw)
To: Emil Velikov, Mikko Rapeli, Linux-Kernel@Vger. Kernel. Org,
ML dri-devel, open list:ABI/API
Cc: Daniel Vetter
On 21 October 2015 at 16:33, Daniel Vetter <daniel@ffwll.ch> wrote:
> On Wed, Oct 21, 2015 at 03:36:22PM +0100, Emil Velikov wrote:
>> On 15 October 2015 at 06:55, Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
>> > Fixes userspace compile error since list_head is not exported to userspace
>> > headers.
>> >
>> > Suggested by Emil Velikov <emil.l.velikov@gmail.com> at
>> > https://lkml.org/lkml/2015/6/3/792
>> >
>> > Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
>> We're safe as the only users of the struct already include via_drv.h.
>>
>> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
>>
>> Daniel can you pick this up (esp. since you added it with commit
>> c828e20456301b0f5192a1f75e8bf8a6afd15551)
>
> Dave already applied it.
Did not notice. Sorry for the noise.
-Emil
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 10/79] via_drm.h: move struct via_file_private definition to drivers/gpu/drm/via/via_drv.h
@ 2015-10-21 16:25 ` Emil Velikov
0 siblings, 0 replies; 206+ messages in thread
From: Emil Velikov @ 2015-10-21 16:25 UTC (permalink / raw)
To: Emil Velikov, Mikko Rapeli, Linux-Kernel@Vger. Kernel. Org,
ML dri-devel, open list:ABI/API
Cc: Daniel Vetter
On 21 October 2015 at 16:33, Daniel Vetter <daniel-/w4YWyX8dFk@public.gmane.org> wrote:
> On Wed, Oct 21, 2015 at 03:36:22PM +0100, Emil Velikov wrote:
>> On 15 October 2015 at 06:55, Mikko Rapeli <mikko.rapeli-X3B1VOXEql0@public.gmane.org> wrote:
>> > Fixes userspace compile error since list_head is not exported to userspace
>> > headers.
>> >
>> > Suggested by Emil Velikov <emil.l.velikov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> at
>> > https://lkml.org/lkml/2015/6/3/792
>> >
>> > Signed-off-by: Mikko Rapeli <mikko.rapeli-X3B1VOXEql0@public.gmane.org>
>> We're safe as the only users of the struct already include via_drv.h.
>>
>> Reviewed-by: Emil Velikov <emil.l.velikov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>>
>> Daniel can you pick this up (esp. since you added it with commit
>> c828e20456301b0f5192a1f75e8bf8a6afd15551)
>
> Dave already applied it.
Did not notice. Sorry for the noise.
-Emil
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 04/79] drm_mode.h: use __u32 and __u64 from linux/types.h
2015-10-21 16:21 ` Emil Velikov
@ 2015-10-21 16:27 ` Alex Deucher
-1 siblings, 0 replies; 206+ messages in thread
From: Alex Deucher @ 2015-10-21 16:27 UTC (permalink / raw)
To: Emil Velikov
Cc: Mikko Rapeli, open list:ABI/API, LKML, Maling list - DRI developers
On Wed, Oct 21, 2015 at 12:21 PM, Emil Velikov <emil.l.velikov@gmail.com> wrote:
> On 21 October 2015 at 16:18, Alex Deucher <alexdeucher@gmail.com> wrote:
>> On Wed, Oct 21, 2015 at 11:09 AM, Emil Velikov <emil.l.velikov@gmail.com> wrote:
>>> Hi Alex,
>>>
>>> On 15 October 2015 at 14:48, Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
>>>> On Thu, Oct 15, 2015 at 09:32:10AM -0400, Alex Deucher wrote:
>>>>> On Thu, Oct 15, 2015 at 1:55 AM, Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
>>>>> > Fixes userspace compilation error:
>>>>> >
>>>>> > drm/drm_mode.h:472:2: error: unknown type name ‘uint32_t’
>>>>> >
>>>>> > Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
>>>>>
>>>>> NACK on all these type conversions. This has not been a problem for
>>>>> years and years and the result looks terrible.
>>>>
>>>> Documentation/CodingStyle, section 5
>>>>
>>>> (e) Types safe for use in userspace.
>>>>
>>>> In certain structures which are visible to userspace, we cannot
>>>> require C99 types and cannot use the 'u32' form above. Thus, we
>>>> use __u32 and similar types in all structures which are shared
>>>> with userspace.
>>>>
>>>> I have only been looking at kernel headers from userspace occationally in
>>>> the past 10 years and had a several cases where the provided headers did
>>>> not compile when included into trivial programs trying to use the structs
>>>> for an ioctl() for example. This long lasting problem triggered me to write
>>>> a test for this and provide these fixes too. In previous reviews usage
>>>> of <stdint.h> and its types in kernel headers was already NACK'ed
>>>> so I changed several places from uint32_t's to __u32.
>>>>
>>>> With these changes it is btw trivial now to add a grep test the there
>>>> are no uint32_t's in include/uapi/ anymore, thus enforcing that coding style
>>>> rule.
>>>>
>>> Based of the reply from Mikko, can you please elaborate your concern ?
>>> Are you thinking about some corner case where this may cause breakage,
>>> or it's solely on stylistic point of view ?
>>
>> Style.
>>
> In that case shouldn't the kernel coding style (not to mention the
> issues with stdint.h types Linus has brought a while back) be
> considered/prevail ?
I don't really have a strong opinion one way or another at this point.
The types just look ugly.
>
>>>
>>> Over the last few years we've been doing some ad-hoc 'synchronisation'
>>> with the headers in libdrm, and this will get us one step closer to
>>> doing things properly.
>>
>> How does this affect libdrm one way or another?
>>
> In a strange way. Some (most?) distributions do not ship the uapi
> headers from the kernel, but rely on the ones in libdrm. Due to
> various issues (as addressed in the series) we have not synchronised
> the headers, thus users such as the gallium radeon winsys has ended up
> redefining/duplicating internally.
The problem is that you generally need the latest headers to support
the latest features in the user mode stacks, so if the user tries to
build against an older kernel, they will be missing definitions.
Alex
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 04/79] drm_mode.h: use __u32 and __u64 from linux/types.h
@ 2015-10-21 16:27 ` Alex Deucher
0 siblings, 0 replies; 206+ messages in thread
From: Alex Deucher @ 2015-10-21 16:27 UTC (permalink / raw)
To: Emil Velikov
Cc: Mikko Rapeli, LKML, Maling list - DRI developers, open list:ABI/API
On Wed, Oct 21, 2015 at 12:21 PM, Emil Velikov <emil.l.velikov@gmail.com> wrote:
> On 21 October 2015 at 16:18, Alex Deucher <alexdeucher@gmail.com> wrote:
>> On Wed, Oct 21, 2015 at 11:09 AM, Emil Velikov <emil.l.velikov@gmail.com> wrote:
>>> Hi Alex,
>>>
>>> On 15 October 2015 at 14:48, Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
>>>> On Thu, Oct 15, 2015 at 09:32:10AM -0400, Alex Deucher wrote:
>>>>> On Thu, Oct 15, 2015 at 1:55 AM, Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
>>>>> > Fixes userspace compilation error:
>>>>> >
>>>>> > drm/drm_mode.h:472:2: error: unknown type name ‘uint32_t’
>>>>> >
>>>>> > Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
>>>>>
>>>>> NACK on all these type conversions. This has not been a problem for
>>>>> years and years and the result looks terrible.
>>>>
>>>> Documentation/CodingStyle, section 5
>>>>
>>>> (e) Types safe for use in userspace.
>>>>
>>>> In certain structures which are visible to userspace, we cannot
>>>> require C99 types and cannot use the 'u32' form above. Thus, we
>>>> use __u32 and similar types in all structures which are shared
>>>> with userspace.
>>>>
>>>> I have only been looking at kernel headers from userspace occationally in
>>>> the past 10 years and had a several cases where the provided headers did
>>>> not compile when included into trivial programs trying to use the structs
>>>> for an ioctl() for example. This long lasting problem triggered me to write
>>>> a test for this and provide these fixes too. In previous reviews usage
>>>> of <stdint.h> and its types in kernel headers was already NACK'ed
>>>> so I changed several places from uint32_t's to __u32.
>>>>
>>>> With these changes it is btw trivial now to add a grep test the there
>>>> are no uint32_t's in include/uapi/ anymore, thus enforcing that coding style
>>>> rule.
>>>>
>>> Based of the reply from Mikko, can you please elaborate your concern ?
>>> Are you thinking about some corner case where this may cause breakage,
>>> or it's solely on stylistic point of view ?
>>
>> Style.
>>
> In that case shouldn't the kernel coding style (not to mention the
> issues with stdint.h types Linus has brought a while back) be
> considered/prevail ?
I don't really have a strong opinion one way or another at this point.
The types just look ugly.
>
>>>
>>> Over the last few years we've been doing some ad-hoc 'synchronisation'
>>> with the headers in libdrm, and this will get us one step closer to
>>> doing things properly.
>>
>> How does this affect libdrm one way or another?
>>
> In a strange way. Some (most?) distributions do not ship the uapi
> headers from the kernel, but rely on the ones in libdrm. Due to
> various issues (as addressed in the series) we have not synchronised
> the headers, thus users such as the gallium radeon winsys has ended up
> redefining/duplicating internally.
The problem is that you generally need the latest headers to support
the latest features in the user mode stacks, so if the user tries to
build against an older kernel, they will be missing definitions.
Alex
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 04/79] drm_mode.h: use __u32 and __u64 from linux/types.h
@ 2015-10-21 17:42 ` Emil Velikov
0 siblings, 0 replies; 206+ messages in thread
From: Emil Velikov @ 2015-10-21 17:42 UTC (permalink / raw)
To: Alex Deucher
Cc: Mikko Rapeli, open list:ABI/API, LKML, Maling list - DRI developers
On 21 October 2015 at 17:27, Alex Deucher <alexdeucher@gmail.com> wrote:
> On Wed, Oct 21, 2015 at 12:21 PM, Emil Velikov <emil.l.velikov@gmail.com> wrote:
>> On 21 October 2015 at 16:18, Alex Deucher <alexdeucher@gmail.com> wrote:
>>> On Wed, Oct 21, 2015 at 11:09 AM, Emil Velikov <emil.l.velikov@gmail.com> wrote:
>>>> Hi Alex,
>>>>
>>>> On 15 October 2015 at 14:48, Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
>>>>> On Thu, Oct 15, 2015 at 09:32:10AM -0400, Alex Deucher wrote:
>>>>>> On Thu, Oct 15, 2015 at 1:55 AM, Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
>>>>>> > Fixes userspace compilation error:
>>>>>> >
>>>>>> > drm/drm_mode.h:472:2: error: unknown type name ‘uint32_t’
>>>>>> >
>>>>>> > Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
>>>>>>
>>>>>> NACK on all these type conversions. This has not been a problem for
>>>>>> years and years and the result looks terrible.
>>>>>
>>>>> Documentation/CodingStyle, section 5
>>>>>
>>>>> (e) Types safe for use in userspace.
>>>>>
>>>>> In certain structures which are visible to userspace, we cannot
>>>>> require C99 types and cannot use the 'u32' form above. Thus, we
>>>>> use __u32 and similar types in all structures which are shared
>>>>> with userspace.
>>>>>
>>>>> I have only been looking at kernel headers from userspace occationally in
>>>>> the past 10 years and had a several cases where the provided headers did
>>>>> not compile when included into trivial programs trying to use the structs
>>>>> for an ioctl() for example. This long lasting problem triggered me to write
>>>>> a test for this and provide these fixes too. In previous reviews usage
>>>>> of <stdint.h> and its types in kernel headers was already NACK'ed
>>>>> so I changed several places from uint32_t's to __u32.
>>>>>
>>>>> With these changes it is btw trivial now to add a grep test the there
>>>>> are no uint32_t's in include/uapi/ anymore, thus enforcing that coding style
>>>>> rule.
>>>>>
>>>> Based of the reply from Mikko, can you please elaborate your concern ?
>>>> Are you thinking about some corner case where this may cause breakage,
>>>> or it's solely on stylistic point of view ?
>>>
>>> Style.
>>>
>> In that case shouldn't the kernel coding style (not to mention the
>> issues with stdint.h types Linus has brought a while back) be
>> considered/prevail ?
>
> I don't really have a strong opinion one way or another at this point.
> The types just look ugly.
>
Fwiw I don't find them too appealing either. But the alternative did
not fare so well :(
>>
>>>>
>>>> Over the last few years we've been doing some ad-hoc 'synchronisation'
>>>> with the headers in libdrm, and this will get us one step closer to
>>>> doing things properly.
>>>
>>> How does this affect libdrm one way or another?
>>>
>> In a strange way. Some (most?) distributions do not ship the uapi
>> headers from the kernel, but rely on the ones in libdrm. Due to
>> various issues (as addressed in the series) we have not synchronised
>> the headers, thus users such as the gallium radeon winsys has ended up
>> redefining/duplicating internally.
>
> The problem is that you generally need the latest headers to support
> the latest features in the user mode stacks, so if the user tries to
> build against an older kernel, they will be missing definitions.
>
Pretty much that's why we have the loose release criteria for libdrm.
Get the functionality upstream (mainline or -next), pull the changes
(sync) and release. As the sync has been busted for a while, people
are forced to do unpleasant things.
-Emil
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 04/79] drm_mode.h: use __u32 and __u64 from linux/types.h
@ 2015-10-21 17:42 ` Emil Velikov
0 siblings, 0 replies; 206+ messages in thread
From: Emil Velikov @ 2015-10-21 17:42 UTC (permalink / raw)
To: Alex Deucher
Cc: Mikko Rapeli, open list:ABI/API, LKML, Maling list - DRI developers
On 21 October 2015 at 17:27, Alex Deucher <alexdeucher-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
> On Wed, Oct 21, 2015 at 12:21 PM, Emil Velikov <emil.l.velikov@gmail.com> wrote:
>> On 21 October 2015 at 16:18, Alex Deucher <alexdeucher-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
>>> On Wed, Oct 21, 2015 at 11:09 AM, Emil Velikov <emil.l.velikov@gmail.com> wrote:
>>>> Hi Alex,
>>>>
>>>> On 15 October 2015 at 14:48, Mikko Rapeli <mikko.rapeli-X3B1VOXEql0@public.gmane.org> wrote:
>>>>> On Thu, Oct 15, 2015 at 09:32:10AM -0400, Alex Deucher wrote:
>>>>>> On Thu, Oct 15, 2015 at 1:55 AM, Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
>>>>>> > Fixes userspace compilation error:
>>>>>> >
>>>>>> > drm/drm_mode.h:472:2: error: unknown type name ‘uint32_t’
>>>>>> >
>>>>>> > Signed-off-by: Mikko Rapeli <mikko.rapeli-X3B1VOXEql0@public.gmane.org>
>>>>>>
>>>>>> NACK on all these type conversions. This has not been a problem for
>>>>>> years and years and the result looks terrible.
>>>>>
>>>>> Documentation/CodingStyle, section 5
>>>>>
>>>>> (e) Types safe for use in userspace.
>>>>>
>>>>> In certain structures which are visible to userspace, we cannot
>>>>> require C99 types and cannot use the 'u32' form above. Thus, we
>>>>> use __u32 and similar types in all structures which are shared
>>>>> with userspace.
>>>>>
>>>>> I have only been looking at kernel headers from userspace occationally in
>>>>> the past 10 years and had a several cases where the provided headers did
>>>>> not compile when included into trivial programs trying to use the structs
>>>>> for an ioctl() for example. This long lasting problem triggered me to write
>>>>> a test for this and provide these fixes too. In previous reviews usage
>>>>> of <stdint.h> and its types in kernel headers was already NACK'ed
>>>>> so I changed several places from uint32_t's to __u32.
>>>>>
>>>>> With these changes it is btw trivial now to add a grep test the there
>>>>> are no uint32_t's in include/uapi/ anymore, thus enforcing that coding style
>>>>> rule.
>>>>>
>>>> Based of the reply from Mikko, can you please elaborate your concern ?
>>>> Are you thinking about some corner case where this may cause breakage,
>>>> or it's solely on stylistic point of view ?
>>>
>>> Style.
>>>
>> In that case shouldn't the kernel coding style (not to mention the
>> issues with stdint.h types Linus has brought a while back) be
>> considered/prevail ?
>
> I don't really have a strong opinion one way or another at this point.
> The types just look ugly.
>
Fwiw I don't find them too appealing either. But the alternative did
not fare so well :(
>>
>>>>
>>>> Over the last few years we've been doing some ad-hoc 'synchronisation'
>>>> with the headers in libdrm, and this will get us one step closer to
>>>> doing things properly.
>>>
>>> How does this affect libdrm one way or another?
>>>
>> In a strange way. Some (most?) distributions do not ship the uapi
>> headers from the kernel, but rely on the ones in libdrm. Due to
>> various issues (as addressed in the series) we have not synchronised
>> the headers, thus users such as the gallium radeon winsys has ended up
>> redefining/duplicating internally.
>
> The problem is that you generally need the latest headers to support
> the latest features in the user mode stacks, so if the user tries to
> build against an older kernel, they will be missing definitions.
>
Pretty much that's why we have the loose release criteria for libdrm.
Get the functionality upstream (mainline or -next), pull the changes
(sync) and release. As the sync has been busted for a while, people
are forced to do unpleasant things.
-Emil
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 02/79] scripts/headers_compile_test.sh: compile test script for exported headers
2015-10-15 7:17 ` Alexander Stein
2015-10-15 7:29 ` Mikko Rapeli
@ 2015-11-10 15:03 ` Gabriel Laskar
1 sibling, 0 replies; 206+ messages in thread
From: Gabriel Laskar @ 2015-11-10 15:03 UTC (permalink / raw)
To: Mikko Rapeli; +Cc: Alexander Stein, linux-kernel
Hi Mikko,
On Thu, 15 Oct 2015 09:17:18 +0200
Alexander Stein <alexander.stein@systec-electronic.com> wrote:
> On Thursday 15 October 2015 07:55:40, Mikko Rapeli wrote:
> > Users of kernel header files would be happier if they did not
> > contain kernel specific parts and would contain #include statements
> > for all other header files that they depend on, and in general
> > would compile.
> >
> > For each header file exported to userspace, this script creates
> > a simple .c file which just includes the header file. Then it
> > tries to compile it together with minimal header files from GCC
> > and libc, and reports results.
>
> Just an idea: Why not try to create a pre-compiled header (pch)
> instead. So you can get rid of creating temporary .c files for each
> header.
I am working on exactly the same thing, here is my suggestions for this:
* you can use -fsyntax-only in order to avoid file creation, it will be
faster, and don't clutter the directories.
* For some headers, for example tegra_drm.h, it is expected to have
include drm.h before, so you have to maintain a list of the headers
that should be included before each headers.
* finally I don't think that including stdint.h/stddef.h is the right
solution when a header is using types like size_t or uint32_t, fixing
the headers to user __kernel_size_t and __u32 should be cleaner.
--
Gabriel Laskar
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 21/79] ebtables.h: use __u64 from linux/types.h
2015-10-15 5:55 ` Mikko Rapeli
(?)
@ 2015-11-23 16:55 ` Pablo Neira Ayuso
-1 siblings, 0 replies; 206+ messages in thread
From: Pablo Neira Ayuso @ 2015-11-23 16:55 UTC (permalink / raw)
To: Mikko Rapeli
Cc: linux-kernel, Jiri Kosina, Arturo Borrero Gonzalez,
Geert Uytterhoeven, linux-api
On Thu, Oct 15, 2015 at 07:55:59AM +0200, Mikko Rapeli wrote:
> Fixes userspace compilation error:
>
> linux/netfilter_bridge/ebtables.h:38:2: error: unknown type name ‘uint64_t’
Applied, thanks.
^ permalink raw reply [flat|nested] 206+ messages in thread
* Re: [PATCH v4 52/79] include/uapi/netfilter/*.h: fix include files for compilation
2015-10-15 5:56 ` [PATCH v4 52/79] include/uapi/netfilter/*.h: fix include files for compilation Mikko Rapeli
@ 2015-11-23 16:55 ` Pablo Neira Ayuso
0 siblings, 0 replies; 206+ messages in thread
From: Pablo Neira Ayuso @ 2015-11-23 16:55 UTC (permalink / raw)
To: Mikko Rapeli
Cc: linux-kernel, Patrick McHardy, Jozsef Kadlecsik, netfilter-devel,
coreteam, linux-api
On Thu, Oct 15, 2015 at 07:56:30AM +0200, Mikko Rapeli wrote:
> Add missing header dependencies and other small changes so that each file
> compiles alone in userspace.
Applied, thanks.
^ permalink raw reply [flat|nested] 206+ messages in thread
end of thread, other threads:[~2015-11-23 16:55 UTC | newest]
Thread overview: 206+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-10-15 5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
2015-10-15 5:55 ` [PATCH v4 01/79] headers_install.sh: enhance error handling Mikko Rapeli
2015-10-15 5:55 ` [PATCH v4 02/79] scripts/headers_compile_test.sh: compile test script for exported headers Mikko Rapeli
2015-10-15 7:17 ` Alexander Stein
2015-10-15 7:29 ` Mikko Rapeli
2015-11-10 15:03 ` Gabriel Laskar
2015-10-15 5:55 ` [PATCH v4 03/79] drm.h: use __kernel_size_t instead of size_t Mikko Rapeli
2015-10-15 5:55 ` [PATCH v4 04/79] drm_mode.h: use __u32 and __u64 from linux/types.h Mikko Rapeli
2015-10-15 13:32 ` Alex Deucher
2015-10-15 13:32 ` Alex Deucher
2015-10-15 13:48 ` Mikko Rapeli
2015-10-15 13:48 ` Mikko Rapeli
2015-10-21 15:09 ` Emil Velikov
2015-10-21 15:09 ` Emil Velikov
2015-10-21 15:18 ` Alex Deucher
2015-10-21 15:18 ` Alex Deucher
2015-10-21 16:21 ` Emil Velikov
2015-10-21 16:21 ` Emil Velikov
2015-10-21 16:27 ` Alex Deucher
2015-10-21 16:27 ` Alex Deucher
2015-10-21 17:42 ` Emil Velikov
2015-10-21 17:42 ` Emil Velikov
2015-10-15 5:55 ` [PATCH v4 05/79] exynos_drm.h: use " Mikko Rapeli
2015-10-15 5:55 ` Mikko Rapeli
2015-10-15 5:55 ` Mikko Rapeli
2015-10-15 16:17 ` Gustavo Padovan
2015-10-15 16:17 ` Gustavo Padovan
2015-10-15 16:17 ` Gustavo Padovan
2015-10-15 5:55 ` [PATCH v4 06/79] nouveau_drm.h: use __u32 and " Mikko Rapeli
2015-10-15 5:55 ` [PATCH v4 07/79] radeon_drm.h: " Mikko Rapeli
2015-10-15 5:55 ` [PATCH v4 08/79] r128_drm.h: include drm/drm.h Mikko Rapeli
2015-10-15 7:43 ` Daniel Vetter
2015-10-15 7:43 ` Daniel Vetter
2015-10-15 5:55 ` [PATCH v4 09/79] via_drm.h: don't include non-existing via_drmclient.h Mikko Rapeli
2015-10-21 15:01 ` Emil Velikov
2015-10-21 15:01 ` Emil Velikov
2015-10-15 5:55 ` [PATCH v4 10/79] via_drm.h: move struct via_file_private definition to drivers/gpu/drm/via/via_drv.h Mikko Rapeli
2015-10-21 14:36 ` Emil Velikov
2015-10-21 14:36 ` Emil Velikov
2015-10-21 15:33 ` Daniel Vetter
2015-10-21 15:33 ` Daniel Vetter
2015-10-21 16:25 ` Emil Velikov
2015-10-21 16:25 ` Emil Velikov
2015-10-15 5:55 ` [PATCH v4 11/79] savage_drm.h: include <drm/drm.h> Mikko Rapeli
2015-10-15 5:55 ` Mikko Rapeli
2015-10-15 6:44 ` Daniel Vetter
2015-10-15 6:44 ` Daniel Vetter
2015-10-15 5:55 ` [PATCH v4 12/79] include/uapi/drm/sis_drm.h: move sis_file_private to drivers/gpu/drm/sis/sis_drv.h Mikko Rapeli
2015-10-21 14:39 ` Emil Velikov
2015-10-21 15:34 ` Daniel Vetter
2015-10-21 15:34 ` Daniel Vetter
2015-10-15 5:55 ` [PATCH v4 13/79] drm/i810_drm.h: include drm/drm.h Mikko Rapeli
2015-10-15 7:44 ` Daniel Vetter
2015-10-15 7:44 ` Daniel Vetter
2015-10-15 5:55 ` [PATCH v4 14/79] include/uapi/drm/vmwgfx_drm.h: use __s32, __u32 and __u64 from linux/types.h Mikko Rapeli
2015-10-15 5:55 ` [PATCH v4 15/79] include/uapi/drm/qxl_drm.h: " Mikko Rapeli
2015-10-15 5:55 ` [PATCH v4 16/79] include/uapi/linux/agpgart.h: include stdlib.h in userspace Mikko Rapeli
2015-10-15 5:55 ` [PATCH v4 17/79] include/uapi/sound/emu10k1.h: added EMU10K1 version of DECLARE_BITMAP macro Mikko Rapeli
2015-10-15 5:55 ` Mikko Rapeli
2015-10-15 8:04 ` Takashi Iwai
2015-10-15 8:04 ` Takashi Iwai
2015-10-15 5:55 ` [PATCH v4 18/79] dm-log-userspace.h: use __u32, __s32 and __u64 from linux/types.h Mikko Rapeli
2015-10-15 8:09 ` Mike Snitzer
2015-10-15 8:09 ` Mike Snitzer
2015-10-15 17:53 ` Mikko Rapeli
2015-10-15 17:53 ` Mikko Rapeli
2015-10-15 5:55 ` [PATCH v4 19/79] hsi_char.h: use __u32 " Mikko Rapeli
2015-10-15 5:55 ` [PATCH v4 20/79] include/uapi/linux/hsi/cs-protocol.h: include linux/time.h Mikko Rapeli
2015-10-15 5:55 ` [PATCH v4 21/79] ebtables.h: use __u64 from linux/types.h Mikko Rapeli
2015-10-15 5:55 ` Mikko Rapeli
2015-11-23 16:55 ` Pablo Neira Ayuso
2015-10-15 5:56 ` [PATCH v4 22/79] cld.h: use __u8, __u16, __s16, __u32 and __s64 " Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 23/79] rds.h: " Mikko Rapeli
2015-10-15 11:06 ` Sowmini Varadhan
2015-10-15 11:06 ` Sowmini Varadhan
2015-10-15 22:00 ` Mikko Rapeli
2015-10-15 22:00 ` Mikko Rapeli
2015-10-15 22:21 ` Sowmini Varadhan
2015-10-15 22:39 ` Mikko Rapeli
2015-10-15 22:39 ` Mikko Rapeli
2015-10-15 23:03 ` Sowmini Varadhan
2015-10-15 23:03 ` Sowmini Varadhan
2015-10-15 5:56 ` [PATCH v4 24/79] sctp.h: use __u8 and __u32 " Mikko Rapeli
2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 25/79] scsi_bsg_fc.h: use __u8, __u32 and __u64 " Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 26/79] scsi_netlink.h: use __u8, __u16 " Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 27/79] scsi_netlink_fc.h: use __u16, __u32 " Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 28/79] hdspm.h: use __u8, __u32 and __u64 from linux/types.h instead of stdint.h Mikko Rapeli
2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 8:04 ` Takashi Iwai
2015-10-15 8:04 ` Takashi Iwai
2015-10-15 5:56 ` [PATCH v4 29/79] gntalloc.h: use __u16, __u32 and __u64 from linux/types.h Mikko Rapeli
2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 10:55 ` David Vrabel
2015-10-15 10:55 ` [Xen-devel] " David Vrabel
2015-10-15 10:55 ` David Vrabel
2015-10-15 5:56 ` [PATCH v4 30/79] gntdev.h: use " Mikko Rapeli
2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 10:56 ` David Vrabel
2015-10-15 10:56 ` [Xen-devel] " David Vrabel
2015-10-15 10:56 ` David Vrabel
2015-10-15 5:56 ` [PATCH v4 31/79] include/uapi/linux/sysctl.h: use __kernel_size_t instead of size_t Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 32/79] include/uapi/asm-generic/ipcbuf.h: include linux/posix_types.h Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 33/79] include/uapi/asm-generic/msgbuf.h: include asm/ipcbuf.h Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 34/79] include/uapi/asm-generic/shmbuf.h: include fixes Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 35/79] asm-generic/sembuf.h: include asm/posix_types.h and asm/ipcbuf.h Mikko Rapeli
2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 36/79] include/uapi/asm-generic/signal.h: use __kernel_size_t instead of size_t Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 37/79] include/uapi/linux/socket.h: include sys/socket.h in userspace Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 38/79] include/uapi/linux/rds.h: include linux/socket.h and linux/types.h Mikko Rapeli
2015-10-15 11:10 ` Sowmini Varadhan
2015-10-15 11:10 ` Sowmini Varadhan
2015-10-15 5:56 ` [PATCH v4 39/79] include/uapi/linux/if_pppox.h: include linux/if.h Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 40/79] include/uapi/linux/if_tunnel.h: include linux/if.h, linux/ip.h and linux/in6.h Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 41/79] include/uapi/linux/ipv6_route.h: include linux/in6.h Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 42/79] " Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 43/79] include/uapi/linux/if_pppol2tp.h: include linux/in.h and linux/in6.h Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 44/79] include/uapi/linux/if_pppox.h: " Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 45/79] linux/if.h linux/hdlc/ioctl.h: move IFNAMSIZ definition to hdlc/ioctl.h Mikko Rapeli
2015-10-15 8:49 ` Frans Klaver
2015-10-15 8:49 ` Frans Klaver
2015-10-15 18:08 ` Mikko Rapeli
2015-10-15 18:08 ` Mikko Rapeli
2015-10-15 18:11 ` [PATCH] " Mikko Rapeli
2015-10-15 18:11 ` Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 46/79] include/uapi/linux/packet_diag.h: include linux/netdevice.h Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 47/79] include/uapi/linux/llc.h: include linux/if.h Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 48/79] include/uapi/linux/mqueue.h: include linux/types.h Mikko Rapeli
2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 49/79] include/uapi/linux/mroute.h: include linux/in.h Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 50/79] include/uapi/linux/dlm_netlink.h: include linux/dlmconstants.h Mikko Rapeli
2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 51/79] include/uapi/linux/ip6_tunnel.h: include linux/if.h and linux/in6.h Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 52/79] include/uapi/netfilter/*.h: fix include files for compilation Mikko Rapeli
2015-11-23 16:55 ` Pablo Neira Ayuso
2015-10-15 5:56 ` [PATCH v4 53/79] include/uapi/linux/errqueue.h: include linux/time.h Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 54/79] include/uapi/asm-generic/ucontext.h: include asm/signal.h and asm/sigcontext.h Mikko Rapeli
2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 55/79] arch/x86/include/uapi/asm/signal.h: use __kernel_size_t instead of size_t Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 56/79] include/uapi/linux/auto_fs.h: include linux/limits.h Mikko Rapeli
2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 57/79] include/uapi/linux/openvswitch.h: use __u32 from linux/types.h Mikko Rapeli
2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 58/79] include/uapi/linux/target_core_user.h: use __u8, __u16, __u32 and __u64 " Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 59/79] include/uapi/linux/omapfb.h: use __kernel_size_t instead of size_t Mikko Rapeli
2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 60/79] include/uapi/linux/atm_zatm.h: include linux/time.h Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 61/79] include/uapi/linux/scc.h: include linux/sockios.h Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 62/79] include/uapi/linux/btrfs.h: define NULL Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 63/79] include/uapi/linux/kexec.h: use __kernel_size_t instead of size_t Mikko Rapeli
2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 64/79] include/uapi/linux/reiserfs_xattr.h: " Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 65/79] include/uapi/linux/patchkey.h: change #error to #warning if file included directly Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 66/79] include/uapi/linux/coda.h: use __kernel_pid_t and add u_short etc definitions for userspace Mikko Rapeli
2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 67/79] include/uapi/linux/android/binder.h: use __kernel_pid_t and __kernel_uid_t Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 68/79] arch/x86/include/uapi/asm/sembuf.h: include linux/types.h and linux/ipc.h Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 69/79] include/uapi/linux/dvb/video.h: remove stdint.h include Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 70/79] include/uapi/mtd/mtd-user.h: " Mikko Rapeli
2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 71/79] include/uapi/linux/fuse.h: use linux/types.h also in userspace Mikko Rapeli
2015-10-15 15:20 ` Miklos Szeredi
2015-10-15 15:20 ` Miklos Szeredi
2015-10-15 17:41 ` Mikko Rapeli
2015-10-15 17:41 ` Mikko Rapeli
2015-10-15 18:32 ` Miklos Szeredi
2015-10-15 18:32 ` Miklos Szeredi
2015-10-15 18:59 ` Arnd Bergmann
2015-10-15 18:59 ` Arnd Bergmann
2015-10-15 19:25 ` Miklos Szeredi
2015-10-15 21:03 ` Mikko Rapeli
2015-10-15 21:03 ` Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 72/79] include/linux/ipmi-fru.h: use linux/types.h instead of stdint.h Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 73/79] include/linux/sdb.h: use linux/types.h types " Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 74/79] include/linux/xz.h: " Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 75/79] include/uapi/xen/privcmd.h: fix compilation in userspace Mikko Rapeli
2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 10:07 ` kbuild test robot
2015-10-15 10:07 ` kbuild test robot
2015-10-15 10:07 ` kbuild test robot
2015-10-15 10:07 ` kbuild test robot
2015-10-15 10:29 ` David Vrabel
2015-10-15 10:29 ` David Vrabel
2015-10-15 10:29 ` David Vrabel
2015-10-15 11:18 ` Mikko Rapeli
2015-10-15 11:18 ` Mikko Rapeli
2015-10-15 11:18 ` Mikko Rapeli
2015-10-15 11:24 ` David Vrabel
2015-10-15 11:24 ` David Vrabel
2015-10-15 11:24 ` David Vrabel
2015-10-15 11:24 ` David Vrabel
2015-10-15 11:35 ` Mikko Rapeli
2015-10-15 11:35 ` Mikko Rapeli
2015-10-15 11:35 ` Mikko Rapeli
2015-10-15 11:35 ` Mikko Rapeli
2015-10-15 10:29 ` David Vrabel
2015-10-15 5:56 ` [PATCH v4 76/79] coda_psdev.h: move upc_req definition from uapi to kernel side headers Mikko Rapeli
2015-10-15 5:56 ` Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 77/79] include/uapi/linux/elfcore.h: remove non-compiling userspace parts Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 78/79] include/uapi/linux/errqueue.h: include time.h in userspace Mikko Rapeli
2015-10-15 5:56 ` [PATCH v4 79/79] arch/arm/include/uapi/asm/signal.h: use __kernel_size_t instead of size_t Mikko Rapeli
2015-10-15 5:56 ` Mikko Rapeli
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.