1/* 2 * include/asm-s390/posix_types.h 3 * 4 * S390 version 5 * 6 * Derived from "include/asm-i386/posix_types.h" 7 */ 8 9#ifndef __ARCH_S390_POSIX_TYPES_H 10#define __ARCH_S390_POSIX_TYPES_H 11 12/* 13 * This file is generally used by user-level software, so you need to 14 * be a little careful about namespace pollution etc. Also, we cannot 15 * assume GCC is being used. 16 */ 17 18typedef long __kernel_off_t; 19typedef int __kernel_pid_t; 20typedef unsigned long __kernel_size_t; 21typedef long __kernel_time_t; 22typedef long __kernel_suseconds_t; 23typedef long __kernel_clock_t; 24typedef int __kernel_timer_t; 25typedef int __kernel_clockid_t; 26typedef int __kernel_daddr_t; 27typedef char * __kernel_caddr_t; 28typedef unsigned short __kernel_uid16_t; 29typedef unsigned short __kernel_gid16_t; 30 31#ifdef __GNUC__ 32typedef long long __kernel_loff_t; 33#endif 34 35#ifndef __s390x__ 36 37typedef unsigned long __kernel_ino_t; 38typedef unsigned short __kernel_mode_t; 39typedef unsigned short __kernel_nlink_t; 40typedef unsigned short __kernel_ipc_pid_t; 41typedef unsigned short __kernel_uid_t; 42typedef unsigned short __kernel_gid_t; 43typedef int __kernel_ssize_t; 44typedef int __kernel_ptrdiff_t; 45typedef unsigned int __kernel_uid32_t; 46typedef unsigned int __kernel_gid32_t; 47typedef unsigned short __kernel_old_uid_t; 48typedef unsigned short __kernel_old_gid_t; 49typedef unsigned short __kernel_old_dev_t; 50 51#else /* __s390x__ */ 52 53typedef unsigned int __kernel_ino_t; 54typedef unsigned int __kernel_mode_t; 55typedef unsigned int __kernel_nlink_t; 56typedef int __kernel_ipc_pid_t; 57typedef unsigned int __kernel_uid_t; 58typedef unsigned int __kernel_gid_t; 59typedef long __kernel_ssize_t; 60typedef long __kernel_ptrdiff_t; 61typedef unsigned long __kernel_sigset_t; /* at least 32 bits */ 62typedef __kernel_uid_t __kernel_old_uid_t; 63typedef __kernel_gid_t __kernel_old_gid_t; 64typedef __kernel_uid_t __kernel_uid32_t; 65typedef __kernel_gid_t __kernel_gid32_t; 66typedef unsigned short __kernel_old_dev_t; 67 68#endif /* __s390x__ */ 69 70typedef struct { 71#if defined(__KERNEL__) || defined(__USE_ALL) 72 int val[2]; 73#else /* !defined(__KERNEL__) && !defined(__USE_ALL)*/ 74 int __val[2]; 75#endif /* !defined(__KERNEL__) && !defined(__USE_ALL)*/ 76} __kernel_fsid_t; 77 78 79#ifdef __KERNEL__ 80 81#undef __FD_SET 82static inline void __FD_SET(unsigned long fd, __kernel_fd_set *fdsetp) 83{ 84 unsigned long _tmp = fd / __NFDBITS; 85 unsigned long _rem = fd % __NFDBITS; 86 fdsetp->fds_bits[_tmp] |= (1UL<<_rem); 87} 88 89#undef __FD_CLR 90static inline void __FD_CLR(unsigned long fd, __kernel_fd_set *fdsetp) 91{ 92 unsigned long _tmp = fd / __NFDBITS; 93 unsigned long _rem = fd % __NFDBITS; 94 fdsetp->fds_bits[_tmp] &= ~(1UL<<_rem); 95} 96 97#undef __FD_ISSET 98static inline int __FD_ISSET(unsigned long fd, const __kernel_fd_set *fdsetp) 99{ 100 unsigned long _tmp = fd / __NFDBITS; 101 unsigned long _rem = fd % __NFDBITS; 102 return (fdsetp->fds_bits[_tmp] & (1UL<<_rem)) != 0; 103} 104 105#undef __FD_ZERO 106#define __FD_ZERO(fdsetp) \ 107 ((void) memset ((void *) (fdsetp), 0, sizeof (__kernel_fd_set))) 108 109#endif /* __KERNEL__ */ 110 111#endif 112