1#ifndef _LINUX_TYPES_H 2#define _LINUX_TYPES_H 3 4#include <linux/posix_types.h> 5#include <asm/types.h> 6 7#ifndef __KERNEL_STRICT_NAMES 8 9typedef __kernel_fd_set fd_set; 10typedef __kernel_dev_t dev_t; 11typedef __kernel_ino_t ino_t; 12typedef __kernel_mode_t mode_t; 13typedef __kernel_nlink_t nlink_t; 14typedef __kernel_off_t off_t; 15typedef __kernel_pid_t pid_t; 16typedef __kernel_uid_t uid_t; 17typedef __kernel_gid_t gid_t; 18typedef __kernel_daddr_t daddr_t; 19typedef __kernel_key_t key_t; 20typedef __kernel_suseconds_t suseconds_t; 21 22#if defined(__GNUC__) && !defined(__STRICT_ANSI__) 23typedef __kernel_loff_t loff_t; 24#endif 25 26/* 27 * The following typedefs are also protected by individual ifdefs for 28 * historical reasons: 29 */ 30#ifndef _SIZE_T 31#define _SIZE_T 32typedef __kernel_size_t size_t; 33#endif 34 35#ifndef _SSIZE_T 36#define _SSIZE_T 37typedef __kernel_ssize_t ssize_t; 38#endif 39 40#ifndef _PTRDIFF_T 41#define _PTRDIFF_T 42typedef __kernel_ptrdiff_t ptrdiff_t; 43#endif 44 45#ifndef _TIME_T 46#define _TIME_T 47typedef __kernel_time_t time_t; 48#endif 49 50#ifndef _CLOCK_T 51#define _CLOCK_T 52typedef __kernel_clock_t clock_t; 53#endif 54 55#ifndef _CADDR_T 56#define _CADDR_T 57typedef __kernel_caddr_t caddr_t; 58#endif 59 60/* bsd */ 61typedef unsigned char u_char; 62typedef unsigned short u_short; 63typedef unsigned int u_int; 64typedef unsigned long u_long; 65 66/* sysv */ 67typedef unsigned char unchar; 68typedef unsigned short ushort; 69typedef unsigned int uint; 70typedef unsigned long ulong; 71 72#ifndef __BIT_TYPES_DEFINED__ 73#define __BIT_TYPES_DEFINED__ 74 75typedef __u8 u_int8_t; 76typedef __s8 int8_t; 77typedef __u16 u_int16_t; 78typedef __s16 int16_t; 79typedef __u32 u_int32_t; 80typedef __s32 int32_t; 81 82#endif /* !(__BIT_TYPES_DEFINED__) */ 83 84typedef __u8 uint8_t; 85typedef __u16 uint16_t; 86typedef __u32 uint32_t; 87 88#if defined(__GNUC__) && !defined(__STRICT_ANSI__) 89typedef __u64 uint64_t; 90typedef __u64 u_int64_t; 91typedef __s64 int64_t; 92#endif 93 94#endif /* __KERNEL_STRICT_NAMES */ 95 96/* 97 * Below are truly Linux-specific types that should never collide with 98 * any application/library that wants linux/types.h. 99 */ 100 101struct ustat { 102 __kernel_daddr_t f_tfree; 103 __kernel_ino_t f_tinode; 104 char f_fname[6]; 105 char f_fpack[6]; 106}; 107 108#endif /* _LINUX_TYPES_H */ 109

