Blame view

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