1 #ifndef _LINUX_POSIX_TYPES_H 2 #define _LINUX_POSIX_TYPES_H 3 4 #include <linux/stddef.h> 5 6 /* 7 * This allows for 1024 file descriptors: if NR_OPEN is ever grown 8 * beyond that you'll have to change this too. But 1024 fd's seem to be 9 * enough even for such "real" unices like OSF/1, so hopefully this is 10 * one limit that doesn't have to be changed [again]. 11 * 12 * Note that POSIX wants the FD_CLEAR(fd,fdsetp) defines to be in 13 * <sys/time.h> (and thus <linux/time.h>) - but this is a more logical 14 * place for them. Solved by having dummy defines in <sys/time.h>. 15 */ 16 17 /* 18 * Those macros may have been defined in <gnu/types.h>. But we always 19 * use the ones here. 20 */ 21 #undef __NFDBITS 22 #define __NFDBITS (8 * sizeof(unsigned long)) 23 24 #undef __FD_SETSIZE 25 #define __FD_SETSIZE 1024 26 27 #undef __FDSET_LONGS 28 #define __FDSET_LONGS (__FD_SETSIZE/__NFDBITS) 29 30 #undef __FDELT 31 #define __FDELT(d) ((d) / __NFDBITS) 32 33 #undef __FDMASK 34 #define __FDMASK(d) (1UL << ((d) % __NFDBITS)) 35 36 typedef struct { 37 unsigned long fds_bits [__FDSET_LONGS]; 38 } __kernel_fd_set; 39 40 /* Type of a signal handler. */ 41 typedef void (*__kernel_sighandler_t)(int); 42 43 /* Type of a SYSV IPC key. */ 44 typedef int __kernel_key_t; 45 46 #include <asm/posix_types.h> 47 48 #endif /* _LINUX_POSIX_TYPES_H */ 49