• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6.36/arch/ia64/include/asm/
1#ifndef _ASM_IA64_POSIX_TYPES_H
2#define _ASM_IA64_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 * Based on <asm-alpha/posix_types.h>.
10 *
11 * Modified 1998-2000, 2003
12 *	David Mosberger-Tang <davidm@hpl.hp.com>, Hewlett-Packard Co
13 */
14
15typedef unsigned long	__kernel_ino_t;
16typedef unsigned int	__kernel_mode_t;
17typedef unsigned int	__kernel_nlink_t;
18typedef long		__kernel_off_t;
19typedef long long	__kernel_loff_t;
20typedef int		__kernel_pid_t;
21typedef int		__kernel_ipc_pid_t;
22typedef unsigned int	__kernel_uid_t;
23typedef unsigned int	__kernel_gid_t;
24typedef unsigned long	__kernel_size_t;
25typedef long		__kernel_ssize_t;
26typedef long		__kernel_ptrdiff_t;
27typedef long		__kernel_time_t;
28typedef long		__kernel_suseconds_t;
29typedef long		__kernel_clock_t;
30typedef int		__kernel_timer_t;
31typedef int		__kernel_clockid_t;
32typedef int		__kernel_daddr_t;
33typedef char *		__kernel_caddr_t;
34typedef unsigned long	__kernel_sigset_t;	/* at least 32 bits */
35typedef unsigned short	__kernel_uid16_t;
36typedef unsigned short	__kernel_gid16_t;
37
38typedef struct {
39	int	val[2];
40} __kernel_fsid_t;
41
42typedef __kernel_uid_t __kernel_old_uid_t;
43typedef __kernel_gid_t __kernel_old_gid_t;
44typedef __kernel_uid_t __kernel_uid32_t;
45typedef __kernel_gid_t __kernel_gid32_t;
46
47typedef unsigned int	__kernel_old_dev_t;
48
49# ifdef __KERNEL__
50
51#  ifndef __GNUC__
52
53#define	__FD_SET(d, set)	((set)->fds_bits[__FDELT(d)] |= __FDMASK(d))
54#define	__FD_CLR(d, set)	((set)->fds_bits[__FDELT(d)] &= ~__FDMASK(d))
55#define	__FD_ISSET(d, set)	(((set)->fds_bits[__FDELT(d)] & __FDMASK(d)) != 0)
56#define	__FD_ZERO(set)	\
57  ((void) memset ((void *) (set), 0, sizeof (__kernel_fd_set)))
58
59#  else /* !__GNUC__ */
60
61/* With GNU C, use inline functions instead so args are evaluated only once: */
62
63#undef __FD_SET
64static __inline__ void __FD_SET(unsigned long fd, __kernel_fd_set *fdsetp)
65{
66	unsigned long _tmp = fd / __NFDBITS;
67	unsigned long _rem = fd % __NFDBITS;
68	fdsetp->fds_bits[_tmp] |= (1UL<<_rem);
69}
70
71#undef __FD_CLR
72static __inline__ void __FD_CLR(unsigned long fd, __kernel_fd_set *fdsetp)
73{
74	unsigned long _tmp = fd / __NFDBITS;
75	unsigned long _rem = fd % __NFDBITS;
76	fdsetp->fds_bits[_tmp] &= ~(1UL<<_rem);
77}
78
79#undef __FD_ISSET
80static __inline__ int __FD_ISSET(unsigned long fd, const __kernel_fd_set *p)
81{
82	unsigned long _tmp = fd / __NFDBITS;
83	unsigned long _rem = fd % __NFDBITS;
84	return (p->fds_bits[_tmp] & (1UL<<_rem)) != 0;
85}
86
87/*
88 * This will unroll the loop for the normal constant case (8 ints,
89 * for a 256-bit fd_set)
90 */
91#undef __FD_ZERO
92static __inline__ void __FD_ZERO(__kernel_fd_set *p)
93{
94	unsigned long *tmp = p->fds_bits;
95	int i;
96
97	if (__builtin_constant_p(__FDSET_LONGS)) {
98		switch (__FDSET_LONGS) {
99		      case 16:
100			tmp[ 0] = 0; tmp[ 1] = 0; tmp[ 2] = 0; tmp[ 3] = 0;
101			tmp[ 4] = 0; tmp[ 5] = 0; tmp[ 6] = 0; tmp[ 7] = 0;
102			tmp[ 8] = 0; tmp[ 9] = 0; tmp[10] = 0; tmp[11] = 0;
103			tmp[12] = 0; tmp[13] = 0; tmp[14] = 0; tmp[15] = 0;
104			return;
105
106		      case 8:
107			tmp[ 0] = 0; tmp[ 1] = 0; tmp[ 2] = 0; tmp[ 3] = 0;
108			tmp[ 4] = 0; tmp[ 5] = 0; tmp[ 6] = 0; tmp[ 7] = 0;
109			return;
110
111		      case 4:
112			tmp[ 0] = 0; tmp[ 1] = 0; tmp[ 2] = 0; tmp[ 3] = 0;
113			return;
114		}
115	}
116	i = __FDSET_LONGS;
117	while (i) {
118		i--;
119		*tmp = 0;
120		tmp++;
121	}
122}
123
124#  endif /* !__GNUC__ */
125# endif /* __KERNEL__ */
126#endif /* _ASM_IA64_POSIX_TYPES_H */
127