X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Flinux%2Ftypes.h;h=75e64b5e133b9eab182098c32fe659e2ee7802ef;hb=refs%2Fheads%2Fvserver;hp=e678ccb20bd69cf060925edd5ab93fd1b3066b8c;hpb=c7b5ebbddf7bcd3651947760f423e3783bbe6573;p=linux-2.6.git diff --git a/include/linux/types.h b/include/linux/types.h index e678ccb20..75e64b5e1 100644 --- a/include/linux/types.h +++ b/include/linux/types.h @@ -2,12 +2,13 @@ #define _LINUX_TYPES_H #ifdef __KERNEL__ -#include #define BITS_TO_LONGS(bits) \ (((bits)+BITS_PER_LONG-1)/BITS_PER_LONG) #define DECLARE_BITMAP(name,bits) \ unsigned long name[BITS_TO_LONGS(bits)] + +#define BITS_PER_BYTE 8 #endif #include @@ -32,12 +33,15 @@ typedef __kernel_clockid_t clockid_t; typedef __kernel_mqd_t mqd_t; #ifdef __KERNEL__ +typedef _Bool bool; + typedef __kernel_uid32_t uid_t; typedef __kernel_gid32_t gid_t; typedef __kernel_uid16_t uid16_t; typedef __kernel_gid16_t gid16_t; typedef unsigned int xid_t; typedef unsigned int nid_t; +typedef unsigned int tag_t; #ifdef CONFIG_UID16 /* This is defined by include/asm-{arch}/posix_types.h */ @@ -125,15 +129,32 @@ typedef __u64 u_int64_t; typedef __s64 int64_t; #endif -/* +/* this is a special 64bit data type that is 8-byte aligned */ +#define aligned_u64 unsigned long long __attribute__((aligned(8))) +#define aligned_be64 __be64 __attribute__((aligned(8))) +#define aligned_le64 __le64 __attribute__((aligned(8))) + +/** * The type used for indexing onto a disc or disc partition. - * If required, asm/types.h can override it and define - * HAVE_SECTOR_T + * + * Linux always considers sectors to be 512 bytes long independently + * of the devices real block size. */ -#ifndef HAVE_SECTOR_T +#ifdef CONFIG_LBD +typedef u64 sector_t; +#else typedef unsigned long sector_t; #endif +/* + * The type of the inode's block count. + */ +#ifdef CONFIG_LSF +typedef u64 blkcnt_t; +#else +typedef unsigned long blkcnt_t; +#endif + /* * The type of an index into the pagecache. Use a #define so asm/types.h * can override it. @@ -142,8 +163,20 @@ typedef unsigned long sector_t; #define pgoff_t unsigned long #endif +#endif /* __KERNEL_STRICT_NAMES */ + +/* + * Below are truly Linux-specific types that should never collide with + * any application/library that wants linux/types.h. + */ + #ifdef __CHECKER__ -#define __bitwise __attribute__((bitwise)) +#define __bitwise__ __attribute__((bitwise)) +#else +#define __bitwise__ +#endif +#ifdef __CHECK_ENDIAN__ +#define __bitwise __bitwise__ #else #define __bitwise #endif @@ -152,15 +185,23 @@ typedef __u16 __bitwise __le16; typedef __u16 __bitwise __be16; typedef __u32 __bitwise __le32; typedef __u32 __bitwise __be32; +#if defined(__GNUC__) && !defined(__STRICT_ANSI__) typedef __u64 __bitwise __le64; typedef __u64 __bitwise __be64; +#endif +typedef __u16 __bitwise __sum16; +typedef __u32 __bitwise __wsum; -#endif /* __KERNEL_STRICT_NAMES */ +#ifdef __KERNEL__ +typedef unsigned __bitwise__ gfp_t; -/* - * Below are truly Linux-specific types that should never collide with - * any application/library that wants linux/types.h. - */ +#ifdef CONFIG_RESOURCES_64BIT +typedef u64 resource_size_t; +#else +typedef u32 resource_size_t; +#endif + +#endif /* __KERNEL__ */ struct ustat { __kernel_daddr_t f_tfree;