Home | History | Annotate | Download | only in linux
      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 typedef int __kernel_mqd_t;
     46 
     47 #include <asm/posix_types.h>
     48 
     49 #endif /* _LINUX_POSIX_TYPES_H */
     50