1*819833afSPeter Tyser #ifndef __ASM_SH_POSIX_TYPES_H 2*819833afSPeter Tyser #define __ASM_SH_POSIX_TYPES_H 3*819833afSPeter Tyser 4*819833afSPeter Tyser /* 5*819833afSPeter Tyser * This file is generally used by user-level software, so you need to 6*819833afSPeter Tyser * be a little careful about namespace pollution etc. Also, we cannot 7*819833afSPeter Tyser * assume GCC is being used. 8*819833afSPeter Tyser */ 9*819833afSPeter Tyser 10*819833afSPeter Tyser typedef unsigned short __kernel_dev_t; 11*819833afSPeter Tyser typedef unsigned long __kernel_ino_t; 12*819833afSPeter Tyser typedef unsigned short __kernel_mode_t; 13*819833afSPeter Tyser typedef unsigned short __kernel_nlink_t; 14*819833afSPeter Tyser typedef long __kernel_off_t; 15*819833afSPeter Tyser typedef int __kernel_pid_t; 16*819833afSPeter Tyser typedef unsigned short __kernel_ipc_pid_t; 17*819833afSPeter Tyser typedef unsigned short __kernel_uid_t; 18*819833afSPeter Tyser typedef unsigned short __kernel_gid_t; 19*819833afSPeter Tyser typedef unsigned int __kernel_size_t; 20*819833afSPeter Tyser typedef int __kernel_ssize_t; 21*819833afSPeter Tyser typedef int __kernel_ptrdiff_t; 22*819833afSPeter Tyser typedef long __kernel_time_t; 23*819833afSPeter Tyser typedef long __kernel_suseconds_t; 24*819833afSPeter Tyser typedef long __kernel_clock_t; 25*819833afSPeter Tyser typedef int __kernel_timer_t; 26*819833afSPeter Tyser typedef int __kernel_clockid_t; 27*819833afSPeter Tyser typedef int __kernel_daddr_t; 28*819833afSPeter Tyser typedef char * __kernel_caddr_t; 29*819833afSPeter Tyser typedef unsigned short __kernel_uid16_t; 30*819833afSPeter Tyser typedef unsigned short __kernel_gid16_t; 31*819833afSPeter Tyser typedef unsigned int __kernel_uid32_t; 32*819833afSPeter Tyser typedef unsigned int __kernel_gid32_t; 33*819833afSPeter Tyser 34*819833afSPeter Tyser typedef unsigned short __kernel_old_uid_t; 35*819833afSPeter Tyser typedef unsigned short __kernel_old_gid_t; 36*819833afSPeter Tyser typedef unsigned short __kernel_old_dev_t; 37*819833afSPeter Tyser 38*819833afSPeter Tyser #ifdef __GNUC__ 39*819833afSPeter Tyser typedef long long __kernel_loff_t; 40*819833afSPeter Tyser #endif 41*819833afSPeter Tyser 42*819833afSPeter Tyser typedef struct { 43*819833afSPeter Tyser #if defined(__KERNEL__) || defined(__USE_ALL) 44*819833afSPeter Tyser int val[2]; 45*819833afSPeter Tyser #else /* !defined(__KERNEL__) && !defined(__USE_ALL) */ 46*819833afSPeter Tyser int __val[2]; 47*819833afSPeter Tyser #endif /* !defined(__KERNEL__) && !defined(__USE_ALL) */ 48*819833afSPeter Tyser } __kernel_fsid_t; 49*819833afSPeter Tyser 50*819833afSPeter Tyser #if defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2) 51*819833afSPeter Tyser 52*819833afSPeter Tyser #undef __FD_SET __FD_SET(unsigned long __fd,__kernel_fd_set * __fdsetp)53*819833afSPeter Tyserstatic __inline__ void __FD_SET(unsigned long __fd, __kernel_fd_set *__fdsetp) 54*819833afSPeter Tyser { 55*819833afSPeter Tyser unsigned long __tmp = __fd / __NFDBITS; 56*819833afSPeter Tyser unsigned long __rem = __fd % __NFDBITS; 57*819833afSPeter Tyser __fdsetp->fds_bits[__tmp] |= (1UL<<__rem); 58*819833afSPeter Tyser } 59*819833afSPeter Tyser 60*819833afSPeter Tyser #undef __FD_CLR __FD_CLR(unsigned long __fd,__kernel_fd_set * __fdsetp)61*819833afSPeter Tyserstatic __inline__ void __FD_CLR(unsigned long __fd, __kernel_fd_set *__fdsetp) 62*819833afSPeter Tyser { 63*819833afSPeter Tyser unsigned long __tmp = __fd / __NFDBITS; 64*819833afSPeter Tyser unsigned long __rem = __fd % __NFDBITS; 65*819833afSPeter Tyser __fdsetp->fds_bits[__tmp] &= ~(1UL<<__rem); 66*819833afSPeter Tyser } 67*819833afSPeter Tyser 68*819833afSPeter Tyser 69*819833afSPeter Tyser #undef __FD_ISSET __FD_ISSET(unsigned long __fd,const __kernel_fd_set * __p)70*819833afSPeter Tyserstatic __inline__ int __FD_ISSET(unsigned long __fd, const __kernel_fd_set *__p) 71*819833afSPeter Tyser { 72*819833afSPeter Tyser unsigned long __tmp = __fd / __NFDBITS; 73*819833afSPeter Tyser unsigned long __rem = __fd % __NFDBITS; 74*819833afSPeter Tyser return (__p->fds_bits[__tmp] & (1UL<<__rem)) != 0; 75*819833afSPeter Tyser } 76*819833afSPeter Tyser 77*819833afSPeter Tyser /* 78*819833afSPeter Tyser * This will unroll the loop for the normal constant case (8 ints, 79*819833afSPeter Tyser * for a 256-bit fd_set) 80*819833afSPeter Tyser */ 81*819833afSPeter Tyser #undef __FD_ZERO __FD_ZERO(__kernel_fd_set * __p)82*819833afSPeter Tyserstatic __inline__ void __FD_ZERO(__kernel_fd_set *__p) 83*819833afSPeter Tyser { 84*819833afSPeter Tyser unsigned long *__tmp = __p->fds_bits; 85*819833afSPeter Tyser int __i; 86*819833afSPeter Tyser 87*819833afSPeter Tyser if (__builtin_constant_p(__FDSET_LONGS)) { 88*819833afSPeter Tyser switch (__FDSET_LONGS) { 89*819833afSPeter Tyser case 16: 90*819833afSPeter Tyser __tmp[ 0] = 0; __tmp[ 1] = 0; 91*819833afSPeter Tyser __tmp[ 2] = 0; __tmp[ 3] = 0; 92*819833afSPeter Tyser __tmp[ 4] = 0; __tmp[ 5] = 0; 93*819833afSPeter Tyser __tmp[ 6] = 0; __tmp[ 7] = 0; 94*819833afSPeter Tyser __tmp[ 8] = 0; __tmp[ 9] = 0; 95*819833afSPeter Tyser __tmp[10] = 0; __tmp[11] = 0; 96*819833afSPeter Tyser __tmp[12] = 0; __tmp[13] = 0; 97*819833afSPeter Tyser __tmp[14] = 0; __tmp[15] = 0; 98*819833afSPeter Tyser return; 99*819833afSPeter Tyser 100*819833afSPeter Tyser case 8: 101*819833afSPeter Tyser __tmp[ 0] = 0; __tmp[ 1] = 0; 102*819833afSPeter Tyser __tmp[ 2] = 0; __tmp[ 3] = 0; 103*819833afSPeter Tyser __tmp[ 4] = 0; __tmp[ 5] = 0; 104*819833afSPeter Tyser __tmp[ 6] = 0; __tmp[ 7] = 0; 105*819833afSPeter Tyser return; 106*819833afSPeter Tyser 107*819833afSPeter Tyser case 4: 108*819833afSPeter Tyser __tmp[ 0] = 0; __tmp[ 1] = 0; 109*819833afSPeter Tyser __tmp[ 2] = 0; __tmp[ 3] = 0; 110*819833afSPeter Tyser return; 111*819833afSPeter Tyser } 112*819833afSPeter Tyser } 113*819833afSPeter Tyser __i = __FDSET_LONGS; 114*819833afSPeter Tyser while (__i) { 115*819833afSPeter Tyser __i--; 116*819833afSPeter Tyser *__tmp = 0; 117*819833afSPeter Tyser __tmp++; 118*819833afSPeter Tyser } 119*819833afSPeter Tyser } 120*819833afSPeter Tyser 121*819833afSPeter Tyser #endif /* defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2) */ 122*819833afSPeter Tyser 123*819833afSPeter Tyser #endif /* __ASM_SH_POSIX_TYPES_H */ 124