Main Page | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals

include/linux/types.h

Go to the documentation of this file.
00001 #ifndef _LINUX_TYPES_H
00002 #define _LINUX_TYPES_H
00003 
00004 #include <linux/posix_types.h>
00005 #include <asm/types.h>
00006 
00007 #ifndef __KERNEL_STRICT_NAMES
00008 
00009 typedef __kernel_fd_set         fd_set;
00010 typedef __kernel_dev_t          dev_t;
00011 typedef __kernel_ino_t          ino_t;
00012 typedef __kernel_mode_t         mode_t;
00013 typedef __kernel_nlink_t        nlink_t;
00014 typedef __kernel_off_t          off_t;
00015 typedef __kernel_pid_t          pid_t;
00016 typedef __kernel_uid_t          uid_t;
00017 typedef __kernel_gid_t          gid_t;
00018 typedef __kernel_daddr_t        daddr_t;
00019 typedef __kernel_key_t          key_t;
00020 typedef __kernel_suseconds_t    suseconds_t;
00021 
00022 #if defined(__GNUC__) && !defined(__STRICT_ANSI__)
00023 typedef __kernel_loff_t         loff_t;
00024 #endif
00025 
00026 /*
00027  * The following typedefs are also protected by individual ifdefs for
00028  * historical reasons:
00029  */
00030 #ifndef _SIZE_T
00031 #define _SIZE_T
00032 typedef __kernel_size_t         size_t;
00033 #endif
00034 
00035 #ifndef _SSIZE_T
00036 #define _SSIZE_T
00037 typedef __kernel_ssize_t        ssize_t;
00038 #endif
00039 
00040 #ifndef _PTRDIFF_T
00041 #define _PTRDIFF_T
00042 typedef __kernel_ptrdiff_t      ptrdiff_t;
00043 #endif
00044 
00045 #ifndef _TIME_T
00046 #define _TIME_T
00047 typedef __kernel_time_t         time_t;
00048 #endif
00049 
00050 #ifndef _CLOCK_T
00051 #define _CLOCK_T
00052 typedef __kernel_clock_t        clock_t;
00053 #endif
00054 
00055 #ifndef _CADDR_T
00056 #define _CADDR_T
00057 typedef __kernel_caddr_t        caddr_t;
00058 #endif
00059 
00060 /* bsd */
00061 typedef unsigned char           u_char;
00062 typedef unsigned short          u_short;
00063 typedef unsigned int            u_int;
00064 typedef unsigned long           u_long;
00065 
00066 /* sysv */
00067 typedef unsigned char           unchar;
00068 typedef unsigned short          ushort;
00069 typedef unsigned int            uint;
00070 typedef unsigned long           ulong;
00071 
00072 #ifndef __BIT_TYPES_DEFINED__
00073 #define __BIT_TYPES_DEFINED__
00074 
00075 typedef         __u8            u_int8_t;
00076 typedef         __s8            int8_t;
00077 typedef         __u16           u_int16_t;
00078 typedef         __s16           int16_t;
00079 typedef         __u32           u_int32_t;
00080 typedef         __s32           int32_t;
00081 
00082 #endif /* !(__BIT_TYPES_DEFINED__) */
00083 
00084 typedef         __u8            uint8_t;
00085 typedef         __u16           uint16_t;
00086 typedef         __u32           uint32_t;
00087 
00088 #if defined(__GNUC__) && !defined(__STRICT_ANSI__)
00089 typedef         __u64           uint64_t;
00090 typedef         __u64           u_int64_t;
00091 typedef         __s64           int64_t;
00092 #endif
00093 
00094 #endif /* __KERNEL_STRICT_NAMES */
00095 
00096 /*
00097  * Below are truly Linux-specific types that should never collide with
00098  * any application/library that wants linux/types.h.
00099  */
00100 
00101 struct ustat {
00102         __kernel_daddr_t        f_tfree;
00103         __kernel_ino_t          f_tinode;
00104         char                    f_fname[6];
00105         char                    f_fpack[6];
00106 };
00107 
00108 #endif /* _LINUX_TYPES_H */