diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/types.h | 15 | 
1 files changed, 14 insertions, 1 deletions
| diff --git a/include/linux/types.h b/include/linux/types.h index 01a082f56ef4..357dbc19606f 100644 --- a/include/linux/types.h +++ b/include/linux/types.h | |||
| @@ -121,7 +121,15 @@ typedef __u64 u_int64_t; | |||
| 121 | typedef __s64 int64_t; | 121 | typedef __s64 int64_t; | 
| 122 | #endif | 122 | #endif | 
| 123 | 123 | ||
| 124 | /* this is a special 64bit data type that is 8-byte aligned */ | 124 | /* | 
| 125 | * aligned_u64 should be used in defining kernel<->userspace ABIs to avoid | ||
| 126 | * common 32/64-bit compat problems. | ||
| 127 | * 64-bit values align to 4-byte boundaries on x86_32 (and possibly other | ||
| 128 | * architectures) and to 8-byte boundaries on 64-bit architetures. The new | ||
| 129 | * aligned_64 type enforces 8-byte alignment so that structs containing | ||
| 130 | * aligned_64 values have the same alignment on 32-bit and 64-bit architectures. | ||
| 131 | * No conversions are necessary between 32-bit user-space and a 64-bit kernel. | ||
| 132 | */ | ||
| 125 | #define aligned_u64 __u64 __attribute__((aligned(8))) | 133 | #define aligned_u64 __u64 __attribute__((aligned(8))) | 
| 126 | #define aligned_be64 __be64 __attribute__((aligned(8))) | 134 | #define aligned_be64 __be64 __attribute__((aligned(8))) | 
| 127 | #define aligned_le64 __le64 __attribute__((aligned(8))) | 135 | #define aligned_le64 __le64 __attribute__((aligned(8))) | 
| @@ -178,6 +186,11 @@ typedef __u64 __bitwise __be64; | |||
| 178 | typedef __u16 __bitwise __sum16; | 186 | typedef __u16 __bitwise __sum16; | 
| 179 | typedef __u32 __bitwise __wsum; | 187 | typedef __u32 __bitwise __wsum; | 
| 180 | 188 | ||
| 189 | /* this is a special 64bit data type that is 8-byte aligned */ | ||
| 190 | #define __aligned_u64 __u64 __attribute__((aligned(8))) | ||
| 191 | #define __aligned_be64 __be64 __attribute__((aligned(8))) | ||
| 192 | #define __aligned_le64 __le64 __attribute__((aligned(8))) | ||
| 193 | |||
| 181 | #ifdef __KERNEL__ | 194 | #ifdef __KERNEL__ | 
| 182 | typedef unsigned __bitwise__ gfp_t; | 195 | typedef unsigned __bitwise__ gfp_t; | 
| 183 | typedef unsigned __bitwise__ fmode_t; | 196 | typedef unsigned __bitwise__ fmode_t; | 
