aligned_{u64,be64,le64} defined in #ifdef __KERNEL__

Andreas Gruenbacher
2010-08-30T01:26:54Z

On Saturday 28 August 2010 01:51:53 Eric Paris wrote:
> I liked this version until I realized that userspace doesn't have
> aligned_u64 as a valid type.

This looks like an error in include/linux/types.h. The aligned types should
probably not be defined inside #ifdef __KERNEL__.

The following other headers expose aligned 64-bit types to user space as well;
copying the netfilter list:

include/linux/if_ppp.h
include/linux/netfilter/nfnetlink_queue.h
include/linux/netfilter/nfnetlink_log.h
include/linux/netfilter/xt_quota.h
include/linux/netfilter/xt_connbytes.h

Otherwise, the definition of those types is really simple, and this would do
in include/linux/fanotify.h until include/linux/types.h is fixed:

#ifndef aligned_u64
# define aligned_u64 __u64 __attribute__((aligned(8)))
#endif

Thanks,
Andreas