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 */