Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


Merge branch 'devel'
[palacios.git] / kitten / include / lwk / posix_types.h
1 #ifndef _LWK_POSIX_TYPES_H
2 #define _LWK_POSIX_TYPES_H
3
4 #include <lwk/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 <arch/posix_types.h>
48
49 #endif /* _LWK_POSIX_TYPES_H */