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

1     #ifndef __ARCH_SPARC_POSIX_TYPES_H
2     #define __ARCH_SPARC_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 int           __kernel_size_t;
11     typedef int                    __kernel_ssize_t;
12     typedef long int               __kernel_ptrdiff_t;
13     typedef long                   __kernel_time_t;
14     typedef long		       __kernel_suseconds_t;
15     typedef long                   __kernel_clock_t;
16     typedef int                    __kernel_pid_t;
17     typedef unsigned short         __kernel_ipc_pid_t;
18     typedef unsigned short         __kernel_uid_t;
19     typedef unsigned short         __kernel_gid_t;
20     typedef unsigned short         __kernel_dev_t;
21     typedef unsigned long          __kernel_ino_t;
22     typedef unsigned short         __kernel_mode_t;
23     typedef unsigned short         __kernel_umode_t;
24     typedef short                  __kernel_nlink_t;
25     typedef long                   __kernel_daddr_t;
26     typedef long                   __kernel_off_t;
27     typedef char *                 __kernel_caddr_t;
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     typedef unsigned short	       __kernel_old_uid_t;
33     typedef unsigned short	       __kernel_old_gid_t;
34     
35     #ifdef __GNUC__
36     typedef long long	__kernel_loff_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(__GLIBC__) || (__GLIBC__ < 2)
48     
49     #undef __FD_SET
50     static __inline__ void __FD_SET(unsigned long fd, __kernel_fd_set *fdsetp)
51     {
52     	unsigned long _tmp = fd / __NFDBITS;
53     	unsigned long _rem = fd % __NFDBITS;
54     	fdsetp->fds_bits[_tmp] |= (1UL<<_rem);
55     }
56     
57     #undef __FD_CLR
58     static __inline__ void __FD_CLR(unsigned long fd, __kernel_fd_set *fdsetp)
59     {
60     	unsigned long _tmp = fd / __NFDBITS;
61     	unsigned long _rem = fd % __NFDBITS;
62     	fdsetp->fds_bits[_tmp] &= ~(1UL<<_rem);
63     }
64     
65     #undef __FD_ISSET
66     static __inline__ int __FD_ISSET(unsigned long fd, __const__ __kernel_fd_set *p)
67     { 
68     	unsigned long _tmp = fd / __NFDBITS;
69     	unsigned long _rem = fd % __NFDBITS;
70     	return (p->fds_bits[_tmp] & (1UL<<_rem)) != 0;
71     }
72     
73     /*
74      * This will unroll the loop for the normal constant cases (8 or 32 longs,
75      * for 256 and 1024-bit fd_sets respectively)
76      */
77     #undef __FD_ZERO
78     static __inline__ void __FD_ZERO(__kernel_fd_set *p)
79     {
80     	unsigned long *tmp = p->fds_bits;
81     	int i;
82     
83     	if (__builtin_constant_p(__FDSET_LONGS)) {
84     		switch (__FDSET_LONGS) {
85     			case 32:
86     			  tmp[ 0] = 0; tmp[ 1] = 0; tmp[ 2] = 0; tmp[ 3] = 0;
87     			  tmp[ 4] = 0; tmp[ 5] = 0; tmp[ 6] = 0; tmp[ 7] = 0;
88     			  tmp[ 8] = 0; tmp[ 9] = 0; tmp[10] = 0; tmp[11] = 0;
89     			  tmp[12] = 0; tmp[13] = 0; tmp[14] = 0; tmp[15] = 0;
90     			  tmp[16] = 0; tmp[17] = 0; tmp[18] = 0; tmp[19] = 0;
91     			  tmp[20] = 0; tmp[21] = 0; tmp[22] = 0; tmp[23] = 0;
92     			  tmp[24] = 0; tmp[25] = 0; tmp[26] = 0; tmp[27] = 0;
93     			  tmp[28] = 0; tmp[29] = 0; tmp[30] = 0; tmp[31] = 0;
94     			  return;
95     			case 16:
96     			  tmp[ 0] = 0; tmp[ 1] = 0; tmp[ 2] = 0; tmp[ 3] = 0;
97     			  tmp[ 4] = 0; tmp[ 5] = 0; tmp[ 6] = 0; tmp[ 7] = 0;
98     			  tmp[ 8] = 0; tmp[ 9] = 0; tmp[10] = 0; tmp[11] = 0;
99     			  tmp[12] = 0; tmp[13] = 0; tmp[14] = 0; tmp[15] = 0;
100     			  return;
101     			case 8:
102     			  tmp[ 0] = 0; tmp[ 1] = 0; tmp[ 2] = 0; tmp[ 3] = 0;
103     			  tmp[ 4] = 0; tmp[ 5] = 0; tmp[ 6] = 0; tmp[ 7] = 0;
104     			  return;
105     			case 4:
106     			  tmp[ 0] = 0; tmp[ 1] = 0; tmp[ 2] = 0; tmp[ 3] = 0;
107     			  return;
108     		}
109     	}
110     	i = __FDSET_LONGS;
111     	while (i) {
112     		i--;
113     		*tmp = 0;
114     		tmp++;
115     	}
116     }
117     
118     #endif /* defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2) */
119     
120     #endif /* !(__ARCH_SPARC_POSIX_TYPES_H) */
121