xref: /openbmc/u-boot/arch/sh/include/asm/posix_types.h (revision 819833af)
1*819833afSPeter Tyser #ifndef __ASM_SH_POSIX_TYPES_H
2*819833afSPeter Tyser #define __ASM_SH_POSIX_TYPES_H
3*819833afSPeter Tyser 
4*819833afSPeter Tyser /*
5*819833afSPeter Tyser  * This file is generally used by user-level software, so you need to
6*819833afSPeter Tyser  * be a little careful about namespace pollution etc.  Also, we cannot
7*819833afSPeter Tyser  * assume GCC is being used.
8*819833afSPeter Tyser  */
9*819833afSPeter Tyser 
10*819833afSPeter Tyser typedef unsigned short  __kernel_dev_t;
11*819833afSPeter Tyser typedef unsigned long	__kernel_ino_t;
12*819833afSPeter Tyser typedef unsigned short	__kernel_mode_t;
13*819833afSPeter Tyser typedef unsigned short	__kernel_nlink_t;
14*819833afSPeter Tyser typedef long		__kernel_off_t;
15*819833afSPeter Tyser typedef int		__kernel_pid_t;
16*819833afSPeter Tyser typedef unsigned short	__kernel_ipc_pid_t;
17*819833afSPeter Tyser typedef unsigned short	__kernel_uid_t;
18*819833afSPeter Tyser typedef unsigned short	__kernel_gid_t;
19*819833afSPeter Tyser typedef unsigned int	__kernel_size_t;
20*819833afSPeter Tyser typedef int		__kernel_ssize_t;
21*819833afSPeter Tyser typedef int		__kernel_ptrdiff_t;
22*819833afSPeter Tyser typedef long		__kernel_time_t;
23*819833afSPeter Tyser typedef long		__kernel_suseconds_t;
24*819833afSPeter Tyser typedef long		__kernel_clock_t;
25*819833afSPeter Tyser typedef int		__kernel_timer_t;
26*819833afSPeter Tyser typedef int		__kernel_clockid_t;
27*819833afSPeter Tyser typedef int		__kernel_daddr_t;
28*819833afSPeter Tyser typedef char *		__kernel_caddr_t;
29*819833afSPeter Tyser typedef unsigned short	__kernel_uid16_t;
30*819833afSPeter Tyser typedef unsigned short	__kernel_gid16_t;
31*819833afSPeter Tyser typedef unsigned int	__kernel_uid32_t;
32*819833afSPeter Tyser typedef unsigned int	__kernel_gid32_t;
33*819833afSPeter Tyser 
34*819833afSPeter Tyser typedef unsigned short	__kernel_old_uid_t;
35*819833afSPeter Tyser typedef unsigned short	__kernel_old_gid_t;
36*819833afSPeter Tyser typedef unsigned short	__kernel_old_dev_t;
37*819833afSPeter Tyser 
38*819833afSPeter Tyser #ifdef __GNUC__
39*819833afSPeter Tyser typedef long long	__kernel_loff_t;
40*819833afSPeter Tyser #endif
41*819833afSPeter Tyser 
42*819833afSPeter Tyser typedef struct {
43*819833afSPeter Tyser #if defined(__KERNEL__) || defined(__USE_ALL)
44*819833afSPeter Tyser 	int	val[2];
45*819833afSPeter Tyser #else /* !defined(__KERNEL__) && !defined(__USE_ALL) */
46*819833afSPeter Tyser 	int	__val[2];
47*819833afSPeter Tyser #endif /* !defined(__KERNEL__) && !defined(__USE_ALL) */
48*819833afSPeter Tyser } __kernel_fsid_t;
49*819833afSPeter Tyser 
50*819833afSPeter Tyser #if defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2)
51*819833afSPeter Tyser 
52*819833afSPeter Tyser #undef	__FD_SET
__FD_SET(unsigned long __fd,__kernel_fd_set * __fdsetp)53*819833afSPeter Tyser static __inline__ void __FD_SET(unsigned long __fd, __kernel_fd_set *__fdsetp)
54*819833afSPeter Tyser {
55*819833afSPeter Tyser 	unsigned long __tmp = __fd / __NFDBITS;
56*819833afSPeter Tyser 	unsigned long __rem = __fd % __NFDBITS;
57*819833afSPeter Tyser 	__fdsetp->fds_bits[__tmp] |= (1UL<<__rem);
58*819833afSPeter Tyser }
59*819833afSPeter Tyser 
60*819833afSPeter Tyser #undef	__FD_CLR
__FD_CLR(unsigned long __fd,__kernel_fd_set * __fdsetp)61*819833afSPeter Tyser static __inline__ void __FD_CLR(unsigned long __fd, __kernel_fd_set *__fdsetp)
62*819833afSPeter Tyser {
63*819833afSPeter Tyser 	unsigned long __tmp = __fd / __NFDBITS;
64*819833afSPeter Tyser 	unsigned long __rem = __fd % __NFDBITS;
65*819833afSPeter Tyser 	__fdsetp->fds_bits[__tmp] &= ~(1UL<<__rem);
66*819833afSPeter Tyser }
67*819833afSPeter Tyser 
68*819833afSPeter Tyser 
69*819833afSPeter Tyser #undef	__FD_ISSET
__FD_ISSET(unsigned long __fd,const __kernel_fd_set * __p)70*819833afSPeter Tyser static __inline__ int __FD_ISSET(unsigned long __fd, const __kernel_fd_set *__p)
71*819833afSPeter Tyser {
72*819833afSPeter Tyser 	unsigned long __tmp = __fd / __NFDBITS;
73*819833afSPeter Tyser 	unsigned long __rem = __fd % __NFDBITS;
74*819833afSPeter Tyser 	return (__p->fds_bits[__tmp] & (1UL<<__rem)) != 0;
75*819833afSPeter Tyser }
76*819833afSPeter Tyser 
77*819833afSPeter Tyser /*
78*819833afSPeter Tyser  * This will unroll the loop for the normal constant case (8 ints,
79*819833afSPeter Tyser  * for a 256-bit fd_set)
80*819833afSPeter Tyser  */
81*819833afSPeter Tyser #undef	__FD_ZERO
__FD_ZERO(__kernel_fd_set * __p)82*819833afSPeter Tyser static __inline__ void __FD_ZERO(__kernel_fd_set *__p)
83*819833afSPeter Tyser {
84*819833afSPeter Tyser 	unsigned long *__tmp = __p->fds_bits;
85*819833afSPeter Tyser 	int __i;
86*819833afSPeter Tyser 
87*819833afSPeter Tyser 	if (__builtin_constant_p(__FDSET_LONGS)) {
88*819833afSPeter Tyser 		switch (__FDSET_LONGS) {
89*819833afSPeter Tyser 		case 16:
90*819833afSPeter Tyser 			__tmp[ 0] = 0; __tmp[ 1] = 0;
91*819833afSPeter Tyser 			__tmp[ 2] = 0; __tmp[ 3] = 0;
92*819833afSPeter Tyser 			__tmp[ 4] = 0; __tmp[ 5] = 0;
93*819833afSPeter Tyser 			__tmp[ 6] = 0; __tmp[ 7] = 0;
94*819833afSPeter Tyser 			__tmp[ 8] = 0; __tmp[ 9] = 0;
95*819833afSPeter Tyser 			__tmp[10] = 0; __tmp[11] = 0;
96*819833afSPeter Tyser 			__tmp[12] = 0; __tmp[13] = 0;
97*819833afSPeter Tyser 			__tmp[14] = 0; __tmp[15] = 0;
98*819833afSPeter Tyser 			return;
99*819833afSPeter Tyser 
100*819833afSPeter Tyser 		case 8:
101*819833afSPeter Tyser 			__tmp[ 0] = 0; __tmp[ 1] = 0;
102*819833afSPeter Tyser 			__tmp[ 2] = 0; __tmp[ 3] = 0;
103*819833afSPeter Tyser 			__tmp[ 4] = 0; __tmp[ 5] = 0;
104*819833afSPeter Tyser 			__tmp[ 6] = 0; __tmp[ 7] = 0;
105*819833afSPeter Tyser 			return;
106*819833afSPeter Tyser 
107*819833afSPeter Tyser 		case 4:
108*819833afSPeter Tyser 			__tmp[ 0] = 0; __tmp[ 1] = 0;
109*819833afSPeter Tyser 			__tmp[ 2] = 0; __tmp[ 3] = 0;
110*819833afSPeter Tyser 			return;
111*819833afSPeter Tyser 		}
112*819833afSPeter Tyser 	}
113*819833afSPeter Tyser 	__i = __FDSET_LONGS;
114*819833afSPeter Tyser 	while (__i) {
115*819833afSPeter Tyser 		__i--;
116*819833afSPeter Tyser 		*__tmp = 0;
117*819833afSPeter Tyser 		__tmp++;
118*819833afSPeter Tyser 	}
119*819833afSPeter Tyser }
120*819833afSPeter Tyser 
121*819833afSPeter Tyser #endif /* defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2) */
122*819833afSPeter Tyser 
123*819833afSPeter Tyser #endif /* __ASM_SH_POSIX_TYPES_H */
124