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

Subversion Repositories or1k_old

[/] [or1k_old/] [trunk/] [rc203soc/] [sw/] [uClinux/] [include/] [asm-ppc/] [posix_types.h] - Diff between revs 1633 and 1765

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 1633 Rev 1765
#ifndef _PPC_POSIX_TYPES_H
#ifndef _PPC_POSIX_TYPES_H
#define _PPC_POSIX_TYPES_H
#define _PPC_POSIX_TYPES_H
 
 
/*
/*
 * This file is generally used by user-level software, so you need to
 * This file is generally used by user-level software, so you need to
 * be a little careful about namespace pollution etc.  Also, we cannot
 * be a little careful about namespace pollution etc.  Also, we cannot
 * assume GCC is being used.
 * assume GCC is being used.
 */
 */
 
 
typedef unsigned int    __kernel_dev_t;
typedef unsigned int    __kernel_dev_t;
typedef unsigned int    __kernel_ino_t;
typedef unsigned int    __kernel_ino_t;
typedef unsigned int    __kernel_mode_t;
typedef unsigned int    __kernel_mode_t;
typedef unsigned short  __kernel_nlink_t;
typedef unsigned short  __kernel_nlink_t;
typedef long            __kernel_off_t;
typedef long            __kernel_off_t;
typedef int             __kernel_pid_t;
typedef int             __kernel_pid_t;
typedef unsigned int    __kernel_uid_t;
typedef unsigned int    __kernel_uid_t;
typedef unsigned int    __kernel_gid_t;
typedef unsigned int    __kernel_gid_t;
typedef unsigned long   __kernel_size_t;
typedef unsigned long   __kernel_size_t;
typedef long            __kernel_ssize_t;
typedef long            __kernel_ssize_t;
typedef long            __kernel_ptrdiff_t;
typedef long            __kernel_ptrdiff_t;
typedef long            __kernel_time_t;
typedef long            __kernel_time_t;
typedef long            __kernel_clock_t;
typedef long            __kernel_clock_t;
typedef int             __kernel_daddr_t;
typedef int             __kernel_daddr_t;
typedef char *          __kernel_caddr_t;
typedef char *          __kernel_caddr_t;
 
 
#ifdef __GNUC__
#ifdef __GNUC__
typedef long long       __kernel_loff_t;
typedef long long       __kernel_loff_t;
#endif
#endif
 
 
typedef struct {
typedef struct {
        int     val[2];
        int     val[2];
} __kernel_fsid_t;
} __kernel_fsid_t;
 
 
#ifndef __GNUC__
#ifndef __GNUC__
 
 
#define __FD_SET(d, set)        ((set)->fds_bits[__FDELT(d)] |= __FDMASK(d))
#define __FD_SET(d, set)        ((set)->fds_bits[__FDELT(d)] |= __FDMASK(d))
#define __FD_CLR(d, set)        ((set)->fds_bits[__FDELT(d)] &= ~__FDMASK(d))
#define __FD_CLR(d, set)        ((set)->fds_bits[__FDELT(d)] &= ~__FDMASK(d))
#define __FD_ISSET(d, set)      ((set)->fds_bits[__FDELT(d)] & __FDMASK(d))
#define __FD_ISSET(d, set)      ((set)->fds_bits[__FDELT(d)] & __FDMASK(d))
#define __FD_ZERO(set)  \
#define __FD_ZERO(set)  \
  ((void) memset ((__ptr_t) (set), 0, sizeof (__kernel_fd_set)))
  ((void) memset ((__ptr_t) (set), 0, sizeof (__kernel_fd_set)))
 
 
#else /* __GNUC__ */
#else /* __GNUC__ */
 
 
/* With GNU C, use inline functions instead so args are evaluated only once: */
/* With GNU C, use inline functions instead so args are evaluated only once: */
 
 
#undef __FD_SET
#undef __FD_SET
static __inline__ void __FD_SET(unsigned long fd, __kernel_fd_set *fdsetp)
static __inline__ void __FD_SET(unsigned long fd, __kernel_fd_set *fdsetp)
{
{
        unsigned long _tmp = fd / __NFDBITS;
        unsigned long _tmp = fd / __NFDBITS;
        unsigned long _rem = fd % __NFDBITS;
        unsigned long _rem = fd % __NFDBITS;
        fdsetp->fds_bits[_tmp] |= (1UL<<_rem);
        fdsetp->fds_bits[_tmp] |= (1UL<<_rem);
}
}
 
 
#undef __FD_CLR
#undef __FD_CLR
static __inline__ void __FD_CLR(unsigned long fd, __kernel_fd_set *fdsetp)
static __inline__ void __FD_CLR(unsigned long fd, __kernel_fd_set *fdsetp)
{
{
        unsigned long _tmp = fd / __NFDBITS;
        unsigned long _tmp = fd / __NFDBITS;
        unsigned long _rem = fd % __NFDBITS;
        unsigned long _rem = fd % __NFDBITS;
        fdsetp->fds_bits[_tmp] &= ~(1UL<<_rem);
        fdsetp->fds_bits[_tmp] &= ~(1UL<<_rem);
}
}
 
 
#undef __FD_ISSET
#undef __FD_ISSET
static __inline__ int __FD_ISSET(unsigned long fd, __kernel_fd_set *p)
static __inline__ int __FD_ISSET(unsigned long fd, __kernel_fd_set *p)
{
{
        unsigned long _tmp = fd / __NFDBITS;
        unsigned long _tmp = fd / __NFDBITS;
        unsigned long _rem = fd % __NFDBITS;
        unsigned long _rem = fd % __NFDBITS;
        return (p->fds_bits[_tmp] & (1UL<<_rem)) != 0;
        return (p->fds_bits[_tmp] & (1UL<<_rem)) != 0;
}
}
 
 
/*
/*
 * This will unroll the loop for the normal constant case (8 ints,
 * This will unroll the loop for the normal constant case (8 ints,
 * for a 256-bit fd_set)
 * for a 256-bit fd_set)
 */
 */
#undef __FD_ZERO
#undef __FD_ZERO
static __inline__ void __FD_ZERO(__kernel_fd_set *p)
static __inline__ void __FD_ZERO(__kernel_fd_set *p)
{
{
        unsigned int *tmp = p->fds_bits;
        unsigned int *tmp = p->fds_bits;
        int i;
        int i;
 
 
        if (__builtin_constant_p(__FDSET_LONGS)) {
        if (__builtin_constant_p(__FDSET_LONGS)) {
                switch (__FDSET_LONGS) {
                switch (__FDSET_LONGS) {
                        case 8:
                        case 8:
                                tmp[0] = 0; tmp[1] = 0; tmp[2] = 0; tmp[3] = 0;
                                tmp[0] = 0; tmp[1] = 0; tmp[2] = 0; tmp[3] = 0;
                                tmp[4] = 0; tmp[5] = 0; tmp[6] = 0; tmp[7] = 0;
                                tmp[4] = 0; tmp[5] = 0; tmp[6] = 0; tmp[7] = 0;
                                return;
                                return;
                }
                }
        }
        }
        i = __FDSET_LONGS;
        i = __FDSET_LONGS;
        while (i) {
        while (i) {
                i--;
                i--;
                *tmp = 0;
                *tmp = 0;
                tmp++;
                tmp++;
        }
        }
}
}
 
 
#endif /* __GNUC__ */
#endif /* __GNUC__ */
 
 
#endif /* _PPC_POSIX_TYPES_H */
#endif /* _PPC_POSIX_TYPES_H */
 
 

powered by: WebSVN 2.1.0

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