File: /usr/src/linux/include/asm-parisc/posix_types.h

1     #ifndef __ARCH_PARISC_POSIX_TYPES_H
2     #define __ARCH_PARISC_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     typedef unsigned int		__kernel_dev_t;
10     typedef unsigned long		__kernel_ino_t;
11     typedef unsigned short		__kernel_mode_t;
12     typedef unsigned short		__kernel_nlink_t;
13     typedef long			__kernel_off_t;
14     typedef int			__kernel_pid_t;
15     typedef unsigned short		__kernel_ipc_pid_t;
16     typedef unsigned int		__kernel_uid_t;
17     typedef unsigned int		__kernel_gid_t;
18     typedef int			__kernel_suseconds_t;
19     typedef int			__kernel_clock_t;
20     typedef int			__kernel_daddr_t;
21     /* Note these change from narrow to wide kernels */
22     typedef unsigned long		__kernel_size_t;
23     typedef long			__kernel_ssize_t;
24     typedef long			__kernel_ptrdiff_t;
25     typedef long			__kernel_time_t;
26     typedef char *			__kernel_caddr_t;
27     
28     typedef unsigned short		__kernel_uid16_t;
29     typedef unsigned short		__kernel_gid16_t;
30     typedef unsigned int		__kernel_uid32_t;
31     typedef unsigned int		__kernel_gid32_t;
32     
33     #ifdef __GNUC__
34     typedef long long		__kernel_loff_t;
35     typedef long long		__kernel_off64_t;
36     typedef unsigned long long	__kernel_ino64_t;
37     #endif
38     
39     typedef struct {
40     #if defined(__KERNEL__) || defined(__USE_ALL)
41     	int	val[2];
42     #else /* !defined(__KERNEL__) && !defined(__USE_ALL) */
43     	int	__val[2];
44     #endif /* !defined(__KERNEL__) && !defined(__USE_ALL) */
45     } __kernel_fsid_t;
46     
47     #if defined(__KERNEL__) && defined(__LP64__)
48     /* Now 32bit compatibility types */
49     typedef unsigned int		__kernel_dev_t32;
50     typedef unsigned int		__kernel_ino_t32;
51     typedef unsigned short		__kernel_mode_t32;
52     typedef unsigned short		__kernel_nlink_t32;
53     typedef int			__kernel_off_t32;
54     typedef int			__kernel_pid_t32;
55     typedef unsigned short		__kernel_ipc_pid_t32;
56     typedef unsigned int		__kernel_uid_t32;
57     typedef unsigned int		__kernel_gid_t32;
58     typedef unsigned int		__kernel_size_t32;
59     typedef int			__kernel_ssize_t32;
60     typedef int			__kernel_ptrdiff_t32;
61     typedef int			__kernel_time_t32;
62     typedef int			__kernel_suseconds_t32;
63     typedef int			__kernel_clock_t32;
64     typedef int			__kernel_daddr_t32;
65     typedef unsigned int		__kernel_caddr_t32;
66     #endif
67     
68     #if defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2)
69     
70     #undef __FD_SET
71     static __inline__ void __FD_SET(unsigned long __fd, __kernel_fd_set *__fdsetp)
72     {
73     	unsigned long __tmp = __fd / __NFDBITS;
74     	unsigned long __rem = __fd % __NFDBITS;
75     	__fdsetp->fds_bits[__tmp] |= (1UL<<__rem);
76     }
77     
78     #undef __FD_CLR
79     static __inline__ void __FD_CLR(unsigned long __fd, __kernel_fd_set *__fdsetp)
80     {
81     	unsigned long __tmp = __fd / __NFDBITS;
82     	unsigned long __rem = __fd % __NFDBITS;
83     	__fdsetp->fds_bits[__tmp] &= ~(1UL<<__rem);
84     }
85     
86     #undef __FD_ISSET
87     static __inline__ int __FD_ISSET(unsigned long __fd, const __kernel_fd_set *__p)
88     { 
89     	unsigned long __tmp = __fd / __NFDBITS;
90     	unsigned long __rem = __fd % __NFDBITS;
91     	return (__p->fds_bits[__tmp] & (1UL<<__rem)) != 0;
92     }
93     
94     /*
95      * This will unroll the loop for the normal constant case (8 ints,
96      * for a 256-bit fd_set)
97      */
98     #undef __FD_ZERO
99     static __inline__ void __FD_ZERO(__kernel_fd_set *__p)
100     {
101     	unsigned long *__tmp = __p->fds_bits;
102     	int __i;
103     
104     	if (__builtin_constant_p(__FDSET_LONGS)) {
105     		switch (__FDSET_LONGS) {
106     		case 16:
107     			__tmp[ 0] = 0; __tmp[ 1] = 0;
108     			__tmp[ 2] = 0; __tmp[ 3] = 0;
109     			__tmp[ 4] = 0; __tmp[ 5] = 0;
110     			__tmp[ 6] = 0; __tmp[ 7] = 0;
111     			__tmp[ 8] = 0; __tmp[ 9] = 0;
112     			__tmp[10] = 0; __tmp[11] = 0;
113     			__tmp[12] = 0; __tmp[13] = 0;
114     			__tmp[14] = 0; __tmp[15] = 0;
115     			return;
116     
117     		case 8:
118     			__tmp[ 0] = 0; __tmp[ 1] = 0;
119     			__tmp[ 2] = 0; __tmp[ 3] = 0;
120     			__tmp[ 4] = 0; __tmp[ 5] = 0;
121     			__tmp[ 6] = 0; __tmp[ 7] = 0;
122     			return;
123     
124     		case 4:
125     			__tmp[ 0] = 0; __tmp[ 1] = 0;
126     			__tmp[ 2] = 0; __tmp[ 3] = 0;
127     			return;
128     		}
129     	}
130     	__i = __FDSET_LONGS;
131     	while (__i) {
132     		__i--;
133     		*__tmp = 0;
134     		__tmp++;
135     	}
136     }
137     
138     #endif /* defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2) */
139     
140     #endif
141