Green shading in the line number column means the source is part of the translation unit, red means it is conditionally excluded. Highlighted line numbers link to the translation unit page. Highlighted macros link to the macro page.
1: #ifndef _UAPI_LINUX_TYPES_H 2: #define _UAPI_LINUX_TYPES_H 3: 4: #include <asm/types.h> 5: 6: #ifndef __ASSEMBLY__ 7: #ifndef __KERNEL__ 8: #ifndef __EXPORTED_HEADERS__ 9: #warning "Attempt to use kernel headers from user space, see http://kernelnewbies.org/KernelHeaders" 10: #endif /* __EXPORTED_HEADERS__ */ 11: #endif 12: 13: #include <linux/posix_types.h> 14: 15: 16: /* 17: * Below are truly Linux-specific types that should never collide with 18: * any application/library that wants linux/types.h. 19: */ 20: 21: #ifdef __CHECKER__ 22: #define __bitwise__ __attribute__((bitwise)) 23: #else 24: #define __bitwise__ 25: #endif 26: #ifdef __CHECK_ENDIAN__ 27: #define __bitwise __bitwise__ 28: #else 29: #define __bitwise 30: #endif 31: 32: typedef __u16 __bitwise __le16; 33: typedef __u16 __bitwise __be16; 34: typedef __u32 __bitwise __le32; 35: typedef __u32 __bitwise __be32; 36: typedef __u64 __bitwise __le64; 37: typedef __u64 __bitwise __be64; 38: 39: typedef __u16 __bitwise __sum16; 40: typedef __u32 __bitwise __wsum; 41: 42: /* 43: * aligned_u64 should be used in defining kernel<->userspace ABIs to avoid 44: * common 32/64-bit compat problems. 45: * 64-bit values align to 4-byte boundaries on x86_32 (and possibly other 46: * architectures) and to 8-byte boundaries on 64-bit architectures. The new 47: * aligned_64 type enforces 8-byte alignment so that structs containing 48: * aligned_64 values have the same alignment on 32-bit and 64-bit architectures. 49: * No conversions are necessary between 32-bit user-space and a 64-bit kernel. 50: */ 51: #define __aligned_u64 __u64 __attribute__((aligned(8))) 52: #define __aligned_be64 __be64 __attribute__((aligned(8))) 53: #define __aligned_le64 __le64 __attribute__((aligned(8))) 54: 55: #endif /* __ASSEMBLY__ */ 56: #endif /* _UAPI_LINUX_TYPES_H */ 57: