Line data Source code
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 2 : } __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 */
|