Loading...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 | #ifndef _LINUX_TYPES_H #define _LINUX_TYPES_H #ifndef _SIZE_T #define _SIZE_T typedef unsigned int size_t; #endif #ifndef _SSIZE_T #define _SSIZE_T typedef int ssize_t; #endif #ifndef _TIME_T #define _TIME_T typedef long time_t; #endif #ifndef _CLOCK_T #define _CLOCK_T typedef long clock_t; #endif #ifndef _PTRDIFF_T #define _PTRDIFF_T typedef int ptrdiff_t; #endif #ifndef NULL #define NULL ((void *) 0) #endif typedef int pid_t; typedef unsigned short uid_t; typedef unsigned short gid_t; typedef unsigned short dev_t; #ifdef OLD_LINUX typedef unsigned short ino_t; #else typedef unsigned long ino_t; #endif typedef unsigned short mode_t; typedef unsigned short umode_t; typedef unsigned short nlink_t; typedef int daddr_t; typedef long off_t; #ifndef __STRICT_ANSI__ #define _LOFF_T typedef long long loff_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; typedef char *caddr_t; typedef unsigned char cc_t; typedef unsigned int speed_t; typedef unsigned long tcflag_t; /* * This allows for 256 file descriptors: if NR_OPEN is ever grown beyond that * you'll have to change this too. But 256 fd's seem to be enough even for such * "real" unices like SunOS, so hopefully this is one limit that doesn't have * to be changed. * * Note that POSIX wants the FD_CLEAR(fd,fdsetp) defines to be in <sys/time.h> * (and thus <linux/time.h>) - but this is a more logical place for them. Solved * by having dummy defines in <sys/time.h>. */ /* * Those macros may have been defined in <gnu/types.h>. But we always * use the ones here. */ #undef __FDSET_LONGS #define __FDSET_LONGS 8 typedef struct fd_set { unsigned long fds_bits [__FDSET_LONGS]; } fd_set; #undef __NFDBITS #define __NFDBITS (8 * sizeof(unsigned long)) #undef __FD_SETSIZE #define __FD_SETSIZE (__FDSET_LONGS*__NFDBITS) #undef __FD_SET #define __FD_SET(fd,fdsetp) \ __asm__ __volatile__("btsl %1,%0": \ "=m" (*(fd_set *) (fdsetp)):"r" ((int) (fd))) #undef __FD_CLR #define __FD_CLR(fd,fdsetp) \ __asm__ __volatile__("btrl %1,%0": \ "=m" (*(fd_set *) (fdsetp)):"r" ((int) (fd))) #undef __FD_ISSET #define __FD_ISSET(fd,fdsetp) (__extension__ ({ \ unsigned char __result; \ __asm__ __volatile__("btl %1,%2 ; setb %0" \ :"=q" (__result) :"r" ((int) (fd)), \ "m" (*(fd_set *) (fdsetp))); \ __result; })) #undef __FD_ZERO #define __FD_ZERO(fdsetp) \ __asm__ __volatile__("cld ; rep ; stosl" \ :"=m" (*(fd_set *) (fdsetp)) \ :"a" (0), "c" (__FDSET_LONGS), \ "D" ((fd_set *) (fdsetp)) :"cx","di") struct ustat { daddr_t f_tfree; ino_t f_tinode; char f_fname[6]; char f_fpack[6]; }; #endif |