PageRenderTime 50ms CodeModel.GetById 40ms app.highlight 8ms RepoModel.GetById 1ms app.codeStats 0ms

/arch/avr32/include/asm/posix_types.h

https://bitbucket.org/thekraven/iscream_thunderc-2.6.35
C++ Header | 125 lines | 93 code | 16 blank | 16 comment | 4 complexity | 6fd43d84003adbf371efb44cd133f3b6 MD5 | raw file
Possible License(s): GPL-2.0, LGPL-2.0, AGPL-1.0
  1/*
  2 * Copyright (C) 2004-2006 Atmel Corporation
  3 *
  4 * This program is free software; you can redistribute it and/or modify
  5 * it under the terms of the GNU General Public License version 2 as
  6 * published by the Free Software Foundation.
  7 */
  8#ifndef __ASM_AVR32_POSIX_TYPES_H
  9#define __ASM_AVR32_POSIX_TYPES_H
 10
 11/*
 12 * This file is generally used by user-level software, so you need to
 13 * be a little careful about namespace pollution etc.  Also, we cannot
 14 * assume GCC is being used.
 15 */
 16
 17typedef unsigned long   __kernel_ino_t;
 18typedef unsigned short  __kernel_mode_t;
 19typedef unsigned short  __kernel_nlink_t;
 20typedef long            __kernel_off_t;
 21typedef int             __kernel_pid_t;
 22typedef unsigned short  __kernel_ipc_pid_t;
 23typedef unsigned int	__kernel_uid_t;
 24typedef unsigned int	__kernel_gid_t;
 25typedef unsigned long	__kernel_size_t;
 26typedef long		__kernel_ssize_t;
 27typedef int             __kernel_ptrdiff_t;
 28typedef long            __kernel_time_t;
 29typedef long            __kernel_suseconds_t;
 30typedef long            __kernel_clock_t;
 31typedef int             __kernel_timer_t;
 32typedef int             __kernel_clockid_t;
 33typedef int             __kernel_daddr_t;
 34typedef char *          __kernel_caddr_t;
 35typedef unsigned short  __kernel_uid16_t;
 36typedef unsigned short  __kernel_gid16_t;
 37typedef unsigned int    __kernel_uid32_t;
 38typedef unsigned int    __kernel_gid32_t;
 39
 40typedef unsigned short  __kernel_old_uid_t;
 41typedef unsigned short  __kernel_old_gid_t;
 42typedef unsigned short  __kernel_old_dev_t;
 43
 44#ifdef __GNUC__
 45typedef long long       __kernel_loff_t;
 46#endif
 47
 48typedef struct {
 49    int     val[2];
 50} __kernel_fsid_t;
 51
 52#if defined(__KERNEL__)
 53
 54#undef  __FD_SET
 55static __inline__ void __FD_SET(unsigned long __fd, __kernel_fd_set *__fdsetp)
 56{
 57    unsigned long __tmp = __fd / __NFDBITS;
 58    unsigned long __rem = __fd % __NFDBITS;
 59    __fdsetp->fds_bits[__tmp] |= (1UL<<__rem);
 60}
 61
 62#undef  __FD_CLR
 63static __inline__ void __FD_CLR(unsigned long __fd, __kernel_fd_set *__fdsetp)
 64{
 65    unsigned long __tmp = __fd / __NFDBITS;
 66    unsigned long __rem = __fd % __NFDBITS;
 67    __fdsetp->fds_bits[__tmp] &= ~(1UL<<__rem);
 68}
 69
 70
 71#undef  __FD_ISSET
 72static __inline__ int __FD_ISSET(unsigned long __fd, const __kernel_fd_set *__p)
 73{
 74    unsigned long __tmp = __fd / __NFDBITS;
 75    unsigned long __rem = __fd % __NFDBITS;
 76    return (__p->fds_bits[__tmp] & (1UL<<__rem)) != 0;
 77}
 78
 79/*
 80 * This will unroll the loop for the normal constant case (8 ints,
 81 * for a 256-bit fd_set)
 82 */
 83#undef  __FD_ZERO
 84static __inline__ void __FD_ZERO(__kernel_fd_set *__p)
 85{
 86    unsigned long *__tmp = __p->fds_bits;
 87    int __i;
 88
 89    if (__builtin_constant_p(__FDSET_LONGS)) {
 90        switch (__FDSET_LONGS) {
 91            case 16:
 92                __tmp[ 0] = 0; __tmp[ 1] = 0;
 93                __tmp[ 2] = 0; __tmp[ 3] = 0;
 94                __tmp[ 4] = 0; __tmp[ 5] = 0;
 95                __tmp[ 6] = 0; __tmp[ 7] = 0;
 96                __tmp[ 8] = 0; __tmp[ 9] = 0;
 97                __tmp[10] = 0; __tmp[11] = 0;
 98                __tmp[12] = 0; __tmp[13] = 0;
 99                __tmp[14] = 0; __tmp[15] = 0;
100                return;
101
102            case 8:
103                __tmp[ 0] = 0; __tmp[ 1] = 0;
104                __tmp[ 2] = 0; __tmp[ 3] = 0;
105                __tmp[ 4] = 0; __tmp[ 5] = 0;
106                __tmp[ 6] = 0; __tmp[ 7] = 0;
107                return;
108
109            case 4:
110                __tmp[ 0] = 0; __tmp[ 1] = 0;
111                __tmp[ 2] = 0; __tmp[ 3] = 0;
112                return;
113        }
114    }
115    __i = __FDSET_LONGS;
116    while (__i) {
117        __i--;
118        *__tmp = 0;
119        __tmp++;
120    }
121}
122
123#endif /* defined(__KERNEL__) */
124
125#endif /* __ASM_AVR32_POSIX_TYPES_H */