uboot/arch/mips/include/asm/posix_types.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2/*
   3 * Copyright (C) 1996, 1997, 1998, 2000 by Ralf Baechle
   4 */
   5#ifndef _ASM_POSIX_TYPES_H
   6#define _ASM_POSIX_TYPES_H
   7
   8/*
   9 * This file is generally used by user-level software, so you need to
  10 * be a little careful about namespace pollution etc.  Also, we cannot
  11 * assume GCC is being used.
  12 */
  13
  14typedef unsigned int    __kernel_dev_t;
  15typedef unsigned long   __kernel_ino_t;
  16typedef unsigned int    __kernel_mode_t;
  17typedef int             __kernel_nlink_t;
  18typedef long            __kernel_off_t;
  19typedef int             __kernel_pid_t;
  20typedef int             __kernel_ipc_pid_t;
  21typedef int             __kernel_uid_t;
  22typedef int             __kernel_gid_t;
  23#if _MIPS_SZLONG != 64
  24typedef unsigned int    __kernel_size_t;
  25typedef int             __kernel_ssize_t;
  26typedef int             __kernel_ptrdiff_t;
  27#else
  28typedef unsigned long   __kernel_size_t;
  29typedef long            __kernel_ssize_t;
  30typedef long            __kernel_ptrdiff_t;
  31#endif
  32typedef long            __kernel_time_t;
  33typedef long            __kernel_suseconds_t;
  34typedef long            __kernel_clock_t;
  35typedef long            __kernel_daddr_t;
  36typedef char *          __kernel_caddr_t;
  37
  38typedef unsigned short  __kernel_uid16_t;
  39typedef unsigned short  __kernel_gid16_t;
  40typedef int             __kernel_uid32_t;
  41typedef int             __kernel_gid32_t;
  42typedef __kernel_uid_t  __kernel_old_uid_t;
  43typedef __kernel_gid_t  __kernel_old_gid_t;
  44
  45#ifdef __GNUC__
  46typedef long long      __kernel_loff_t;
  47#endif
  48
  49typedef struct {
  50        long    val[2];
  51} __kernel_fsid_t;
  52
  53#if defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2)
  54
  55#undef __FD_SET
  56static __inline__ void __FD_SET(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_CLR
  64static __inline__ void __FD_CLR(unsigned long __fd, __kernel_fd_set *__fdsetp)
  65{
  66        unsigned long __tmp = __fd / __NFDBITS;
  67        unsigned long __rem = __fd % __NFDBITS;
  68        __fdsetp->fds_bits[__tmp] &= ~(1UL<<__rem);
  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__) || !defined(__GLIBC__) || (__GLIBC__ < 2) */
 124
 125#endif /* _ASM_POSIX_TYPES_H */
 126