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 / arch-x86_64 / posix_types.h
1 #ifndef _X86_64_POSIX_TYPES_H
2 #define _X86_64_POSIX_TYPES_H
3
4 /*
5  * This file is generally used by user-level software, so you need to
6  * be a little careful about namespace pollution etc.  Also, we cannot
7  * assume GCC is being used.
8  */
9
10 typedef unsigned long   __kernel_ino_t;
11 typedef unsigned int    __kernel_mode_t;
12 typedef unsigned long   __kernel_nlink_t;
13 typedef long            __kernel_off_t;
14 typedef int             __kernel_pid_t;
15 typedef int             __kernel_ipc_pid_t;
16 typedef unsigned int    __kernel_uid_t;
17 typedef unsigned int    __kernel_gid_t;
18 typedef unsigned long   __kernel_size_t;
19 typedef long            __kernel_ssize_t;
20 typedef long            __kernel_ptrdiff_t;
21 typedef unsigned long   __kernel_uintptr_t;
22 typedef long            __kernel_time_t;
23 typedef long            __kernel_suseconds_t;
24 typedef long            __kernel_clock_t;
25 typedef int             __kernel_timer_t;
26 typedef int             __kernel_clockid_t;
27 typedef int             __kernel_daddr_t;
28 typedef char *          __kernel_caddr_t;
29 typedef long long       __kernel_loff_t;
30
31 typedef struct {
32         int     val[2];
33 } __kernel_fsid_t;
34
35 #ifdef __KERNEL__
36
37 #undef __FD_SET
38 static __inline__ void __FD_SET(unsigned long fd, __kernel_fd_set *fdsetp)
39 {
40         unsigned long _tmp = fd / __NFDBITS;
41         unsigned long _rem = fd % __NFDBITS;
42         fdsetp->fds_bits[_tmp] |= (1UL<<_rem);
43 }
44
45 #undef __FD_CLR
46 static __inline__ void __FD_CLR(unsigned long fd, __kernel_fd_set *fdsetp)
47 {
48         unsigned long _tmp = fd / __NFDBITS;
49         unsigned long _rem = fd % __NFDBITS;
50         fdsetp->fds_bits[_tmp] &= ~(1UL<<_rem);
51 }
52
53 #undef __FD_ISSET
54 static __inline__ int __FD_ISSET(unsigned long fd, __const__ __kernel_fd_set *p)
55 {
56         unsigned long _tmp = fd / __NFDBITS;
57         unsigned long _rem = fd % __NFDBITS;
58         return (p->fds_bits[_tmp] & (1UL<<_rem)) != 0;
59 }
60
61 /*
62  * This will unroll the loop for the normal constant cases (8 or 32 longs,
63  * for 256 and 1024-bit fd_sets respectively)
64  */
65 #undef __FD_ZERO
66 static __inline__ void __FD_ZERO(__kernel_fd_set *p)
67 {
68         unsigned long *tmp = p->fds_bits;
69         int i;
70
71         if (__builtin_constant_p(__FDSET_LONGS)) {
72                 switch (__FDSET_LONGS) {
73                         case 32:
74                           tmp[ 0] = 0; tmp[ 1] = 0; tmp[ 2] = 0; tmp[ 3] = 0;
75                           tmp[ 4] = 0; tmp[ 5] = 0; tmp[ 6] = 0; tmp[ 7] = 0;
76                           tmp[ 8] = 0; tmp[ 9] = 0; tmp[10] = 0; tmp[11] = 0;
77                           tmp[12] = 0; tmp[13] = 0; tmp[14] = 0; tmp[15] = 0;
78                           tmp[16] = 0; tmp[17] = 0; tmp[18] = 0; tmp[19] = 0;
79                           tmp[20] = 0; tmp[21] = 0; tmp[22] = 0; tmp[23] = 0;
80                           tmp[24] = 0; tmp[25] = 0; tmp[26] = 0; tmp[27] = 0;
81                           tmp[28] = 0; tmp[29] = 0; tmp[30] = 0; tmp[31] = 0;
82                           return;
83                         case 16:
84                           tmp[ 0] = 0; tmp[ 1] = 0; tmp[ 2] = 0; tmp[ 3] = 0;
85                           tmp[ 4] = 0; tmp[ 5] = 0; tmp[ 6] = 0; tmp[ 7] = 0;
86                           tmp[ 8] = 0; tmp[ 9] = 0; tmp[10] = 0; tmp[11] = 0;
87                           tmp[12] = 0; tmp[13] = 0; tmp[14] = 0; tmp[15] = 0;
88                           return;
89                         case 8:
90                           tmp[ 0] = 0; tmp[ 1] = 0; tmp[ 2] = 0; tmp[ 3] = 0;
91                           tmp[ 4] = 0; tmp[ 5] = 0; tmp[ 6] = 0; tmp[ 7] = 0;
92                           return;
93                         case 4:
94                           tmp[ 0] = 0; tmp[ 1] = 0; tmp[ 2] = 0; tmp[ 3] = 0;
95                           return;
96                 }
97         }
98         i = __FDSET_LONGS;
99         while (i) {
100                 i--;
101                 *tmp = 0;
102                 tmp++;
103         }
104 }
105
106 #endif /* defined(__KERNEL__) */
107
108 #endif