OpenCores
URL https://opencores.org/ocsvn/or1k_old/or1k_old/trunk

Subversion Repositories or1k_old

[/] [or1k_old/] [trunk/] [rc203soc/] [sw/] [uClinux/] [include/] [asm-alpha/] [posix_types.h] - Blame information for rev 1782

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1632 jcastillo
#ifndef _ALPHA_POSIX_TYPES_H
2
#define _ALPHA_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_dev_t;
11
typedef unsigned int    __kernel_ino_t;
12
typedef unsigned int    __kernel_mode_t;
13
typedef unsigned int    __kernel_nlink_t;
14
typedef long            __kernel_off_t;
15
typedef int             __kernel_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 long            __kernel_time_t;
22
typedef long            __kernel_clock_t;
23
typedef int             __kernel_daddr_t;
24
typedef char *          __kernel_caddr_t;
25
typedef unsigned long   __kernel_sigset_t;      /* at least 32 bits */
26
 
27
#ifdef __GNUC__
28
typedef long long       __kernel_loff_t;
29
#endif
30
 
31
typedef struct {
32
        int     val[2];
33
} __kernel_fsid_t;
34
 
35
#ifndef __GNUC__
36
 
37
#define __FD_SET(d, set)        ((set)->fds_bits[__FDELT(d)] |= __FDMASK(d))
38
#define __FD_CLR(d, set)        ((set)->fds_bits[__FDELT(d)] &= ~__FDMASK(d))
39
#define __FD_ISSET(d, set)      ((set)->fds_bits[__FDELT(d)] & __FDMASK(d))
40
#define __FD_ZERO(set)  \
41
  ((void) memset ((__ptr_t) (set), 0, sizeof (__kernel_fd_set)))
42
 
43
#else /* __GNUC__ */
44
 
45
/* With GNU C, use inline functions instead so args are evaluated only once: */
46
 
47
#undef __FD_SET
48
static __inline__ void __FD_SET(unsigned long fd, __kernel_fd_set *fdsetp)
49
{
50
        unsigned long _tmp = fd / __NFDBITS;
51
        unsigned long _rem = fd % __NFDBITS;
52
        fdsetp->fds_bits[_tmp] |= (1UL<<_rem);
53
}
54
 
55
#undef __FD_CLR
56
static __inline__ void __FD_CLR(unsigned long fd, __kernel_fd_set *fdsetp)
57
{
58
        unsigned long _tmp = fd / __NFDBITS;
59
        unsigned long _rem = fd % __NFDBITS;
60
        fdsetp->fds_bits[_tmp] &= ~(1UL<<_rem);
61
}
62
 
63
#undef __FD_ISSET
64
static __inline__ int __FD_ISSET(unsigned long fd, const __kernel_fd_set *p)
65
{
66
        unsigned long _tmp = fd / __NFDBITS;
67
        unsigned long _rem = fd % __NFDBITS;
68
        return (p->fds_bits[_tmp] & (1UL<<_rem)) != 0;
69
}
70
 
71
/*
72
 * This will unroll the loop for the normal constant case (8 ints,
73
 * for a 256-bit fd_set)
74
 */
75
#undef __FD_ZERO
76
static __inline__ void __FD_ZERO(__kernel_fd_set *p)
77
{
78
        unsigned long *tmp = p->fds_bits;
79
        int i;
80
 
81
        if (__builtin_constant_p(__FDSET_LONGS)) {
82
                switch (__FDSET_LONGS) {
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
 
90
                      case 8:
91
                        tmp[ 0] = 0; tmp[ 1] = 0; tmp[ 2] = 0; tmp[ 3] = 0;
92
                        tmp[ 4] = 0; tmp[ 5] = 0; tmp[ 6] = 0; tmp[ 7] = 0;
93
                        return;
94
 
95
                      case 4:
96
                        tmp[ 0] = 0; tmp[ 1] = 0; tmp[ 2] = 0; tmp[ 3] = 0;
97
                        return;
98
                }
99
        }
100
        i = __FDSET_LONGS;
101
        while (i) {
102
                i--;
103
                *tmp = 0;
104
                tmp++;
105
        }
106
}
107
 
108
#endif /* __GNUC__ */
109
 
110
#endif /* _ALPHA_POSIX_TYPES_H */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.