]> rtime.felk.cvut.cz Git - lisovros/iproute2_canprio.git/blobdiff - include/linux/types.h
Update to kernel v3.3 headers
[lisovros/iproute2_canprio.git] / include / linux / types.h
index d9e8c4f2ad8fd80b4ac2e77548b621b87cc87ced..23ea78fd1847aa7a04d718321a2270e80b3dc0a6 100644 (file)
 #ifndef _LINUX_TYPES_H
 #define _LINUX_TYPES_H
 
-
-#include <linux/posix_types.h>
 #include <asm/types.h>
 
-#ifndef __KERNEL_STRICT_NAMES
-
-typedef __u32 __kernel_dev_t;
-
-typedef __kernel_fd_set                fd_set;
-typedef __kernel_dev_t         dev_t;
-typedef __kernel_ino_t         ino_t;
-typedef __kernel_mode_t                mode_t;
-typedef __kernel_nlink_t       nlink_t;
-typedef __kernel_off_t         off_t;
-typedef __kernel_pid_t         pid_t;
-typedef __kernel_daddr_t       daddr_t;
-typedef __kernel_key_t         key_t;
-typedef __kernel_suseconds_t   suseconds_t;
-typedef __kernel_timer_t       timer_t;
-typedef __kernel_clockid_t     clockid_t;
-typedef __kernel_mqd_t         mqd_t;
-
-typedef __kernel_uid_t         uid_t;
-typedef __kernel_gid_t         gid_t;
-
-#if defined(__GNUC__)
-typedef __kernel_loff_t                loff_t;
-#endif
-
-/*
- * The following typedefs are also protected by individual ifdefs for
- * historical reasons:
- */
-#ifndef _SIZE_T
-#define _SIZE_T
-typedef __kernel_size_t                size_t;
-#endif
-
-#ifndef _SSIZE_T
-#define _SSIZE_T
-typedef __kernel_ssize_t       ssize_t;
-#endif
-
-#ifndef _PTRDIFF_T
-#define _PTRDIFF_T
-typedef __kernel_ptrdiff_t     ptrdiff_t;
-#endif
-
-#ifndef _TIME_T
-#define _TIME_T
-typedef __kernel_time_t                time_t;
-#endif
-
-#ifndef _CLOCK_T
-#define _CLOCK_T
-typedef __kernel_clock_t       clock_t;
-#endif
-
-#ifndef _CADDR_T
-#define _CADDR_T
-typedef __kernel_caddr_t       caddr_t;
-#endif
-
-/* bsd */
-typedef unsigned char          u_char;
-typedef unsigned short         u_short;
-typedef unsigned int           u_int;
-typedef unsigned long          u_long;
-
-/* sysv */
-typedef unsigned char          unchar;
-typedef unsigned short         ushort;
-typedef unsigned int           uint;
-typedef unsigned long          ulong;
-
-#ifndef __BIT_TYPES_DEFINED__
-#define __BIT_TYPES_DEFINED__
+#ifndef __ASSEMBLY__
 
-typedef                __u8            u_int8_t;
-typedef                __s8            int8_t;
-typedef                __u16           u_int16_t;
-typedef                __s16           int16_t;
-typedef                __u32           u_int32_t;
-typedef                __s32           int32_t;
-
-#endif /* !(__BIT_TYPES_DEFINED__) */
-
-typedef                __u8            uint8_t;
-typedef                __u16           uint16_t;
-typedef                __u32           uint32_t;
-
-#if defined(__GNUC__)
-typedef                __u64           uint64_t;
-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 __u64 __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.
- *
- * Linux always considers sectors to be 512 bytes long independently
- * of the devices real block size.
- */
-#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.
- */
-#ifndef pgoff_t
-#define pgoff_t unsigned long
-#endif
+#include <linux/posix_types.h>
 
-#endif /* __KERNEL_STRICT_NAMES */
 
 /*
  * Below are truly Linux-specific types that should never collide with
@@ -154,19 +28,24 @@ typedef __u16 __bitwise __le16;
 typedef __u16 __bitwise __be16;
 typedef __u32 __bitwise __le32;
 typedef __u32 __bitwise __be32;
-#if defined(__GNUC__)
 typedef __u64 __bitwise __le64;
 typedef __u64 __bitwise __be64;
-#endif
+
 typedef __u16 __bitwise __sum16;
 typedef __u32 __bitwise __wsum;
 
+/*
+ * aligned_u64 should be used in defining kernel<->userspace ABIs to avoid
+ * common 32/64-bit compat problems.
+ * 64-bit values align to 4-byte boundaries on x86_32 (and possibly other
+ * architectures) and to 8-byte boundaries on 64-bit architectures.  The new
+ * aligned_64 type enforces 8-byte alignment so that structs containing
+ * aligned_64 values have the same alignment on 32-bit and 64-bit architectures.
+ * No conversions are necessary between 32-bit user-space and a 64-bit kernel.
+ */
+#define __aligned_u64 __u64 __attribute__((aligned(8)))
+#define __aligned_be64 __be64 __attribute__((aligned(8)))
+#define __aligned_le64 __le64 __attribute__((aligned(8)))
 
-struct ustat {
-       __kernel_daddr_t        f_tfree;
-       __kernel_ino_t          f_tinode;
-       char                    f_fname[6];
-       char                    f_fpack[6];
-};
-
+#endif /*  __ASSEMBLY__ */
 #endif /* _LINUX_TYPES_H */