LCOV - code coverage report
Current view: directory - usr/include/sys - _structs.h (source / functions) Found Hit Coverage
Test: coverage.lcov Lines: 2 2 100.0 %
Date: 2014-06-18 Functions: 0 0 -

       1                 : /*
       2                 :  * Copyright (c) 2004-2006 Apple Computer, Inc. All rights reserved.
       3                 :  *
       4                 :  * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
       5                 :  * 
       6                 :  * This file contains Original Code and/or Modifications of Original Code
       7                 :  * as defined in and that are subject to the Apple Public Source License
       8                 :  * Version 2.0 (the 'License'). You may not use this file except in
       9                 :  * compliance with the License. The rights granted to you under the License
      10                 :  * may not be used to create, or enable the creation or redistribution of,
      11                 :  * unlawful or unlicensed copies of an Apple operating system, or to
      12                 :  * circumvent, violate, or enable the circumvention or violation of, any
      13                 :  * terms of an Apple operating system software license agreement.
      14                 :  * 
      15                 :  * Please obtain a copy of the License at
      16                 :  * http://www.opensource.apple.com/apsl/ and read it before using this file.
      17                 :  * 
      18                 :  * The Original Code and all software distributed under the License are
      19                 :  * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
      20                 :  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
      21                 :  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
      22                 :  * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
      23                 :  * Please see the License for the specific language governing rights and
      24                 :  * limitations under the License.
      25                 :  * 
      26                 :  * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
      27                 :  */
      28                 : 
      29                 : #include <sys/cdefs.h>
      30                 : #include <sys/_types.h>
      31                 : 
      32                 : #ifdef __need_ucontext_t
      33                 : #ifndef __need_struct_ucontext
      34                 : #define __need_struct_ucontext
      35                 : #endif /* __need_struct_ucontext */
      36                 : #endif /* __need_ucontext_t */
      37                 : 
      38                 : #ifdef __need_ucontext64_t
      39                 : #ifndef __need_struct_ucontext64
      40                 : #define __need_struct_ucontext64
      41                 : #endif /* __need_struct_ucontext64 */
      42                 : #endif /* __need_ucontext64_t */
      43                 : 
      44                 : #ifdef __need_struct_ucontext
      45                 : #ifndef __need_struct_mcontext
      46                 : #define __need_struct_mcontext
      47                 : #endif /* __need_struct_mcontext */
      48                 : #endif /* __need_struct_ucontext */
      49                 : 
      50                 : #ifdef __need_struct_ucontext64
      51                 : #ifndef __need_struct_mcontext64
      52                 : #define __need_struct_mcontext64
      53                 : #endif /* __need_struct_mcontext64 */
      54                 : #endif /* __need_struct_ucontext64 */
      55                 : 
      56                 : #if defined(__need_struct_mcontext) || defined(__need_struct_mcontext64)
      57                 : #include <machine/_structs.h>
      58                 : #endif /* __need_struct_mcontext || __need_struct_mcontext64 */
      59                 : 
      60                 : #if defined(__need_stack_t) || defined(__need_struct_ucontext) || defined(__need_struct_ucontext64)
      61                 : #ifndef __need_struct_sigaltstack
      62                 : #define __need_struct_sigaltstack
      63                 : #endif /* __need_struct_sigaltstack */
      64                 : #endif /* __need_stack_t || __need_struct_ucontext || __need_struct_ucontext64 */
      65                 : 
      66                 : #ifdef __need_struct_sigaltstack
      67                 : #undef __need_struct_sigaltstack
      68                 : /* Structure used in sigaltstack call. */
      69                 : #ifndef _STRUCT_SIGALTSTACK
      70                 : #if __DARWIN_UNIX03
      71                 : #define _STRUCT_SIGALTSTACK     struct __darwin_sigaltstack
      72                 : #else /* !__DARWIN_UNIX03 */
      73                 : #define _STRUCT_SIGALTSTACK     struct sigaltstack
      74                 : #endif /* __DARWIN_UNIX03 */
      75                 : _STRUCT_SIGALTSTACK
      76                 : {
      77                 :         void            *ss_sp;         /* signal stack base */
      78                 :         __darwin_size_t ss_size;        /* signal stack length */
      79                 :         int             ss_flags;       /* SA_DISABLE and/or SA_ONSTACK */
      80                 : };
      81                 : #endif /* _STRUCT_SIGALTSTACK */
      82                 : #endif /* __need_struct_sigaltstack */
      83                 : 
      84                 : #ifdef __need_struct_timespec
      85                 : #undef __need_struct_timespec
      86                 : #ifndef _STRUCT_TIMESPEC
      87                 : #define _STRUCT_TIMESPEC        struct timespec
      88                 : _STRUCT_TIMESPEC
      89                 : {
      90                 :         __darwin_time_t tv_sec;
      91                 :         long            tv_nsec;
      92                 : };
      93                 : #endif /* _STRUCT_TIMESPEC */
      94                 : #endif /* __need_struct_timespec */
      95                 : 
      96                 : #ifdef __need_struct_timeval
      97                 : #undef __need_struct_timeval
      98                 : #ifndef _STRUCT_TIMEVAL
      99                 : #define _STRUCT_TIMEVAL         struct timeval
     100                 : _STRUCT_TIMEVAL
     101                 : {
     102                 :         __darwin_time_t         tv_sec;         /* seconds */
     103                 :         __darwin_suseconds_t    tv_usec;        /* and microseconds */
     104                 : };
     105                 : #endif /* _STRUCT_TIMEVAL */
     106                 : #endif /* __need_struct_timeval */
     107                 : 
     108                 : #ifdef __need_struct_timeval32
     109                 : #undef __need_struct_timeval32
     110                 : #ifndef _STRUCT_TIMEVAL32
     111                 : #define _STRUCT_TIMEVAL32       struct timeval32
     112                 : _STRUCT_TIMEVAL32
     113                 : {
     114                 :         __int32_t               tv_sec;         /* seconds */
     115                 :         __int32_t               tv_usec;        /* and microseconds */
     116                 : };
     117                 : #endif /* _STRUCT_TIMEVAL32 */
     118                 : #endif /* __need_struct_timeval32 */
     119                 : 
     120                 : #ifdef __need_struct_ucontext
     121                 : #undef __need_struct_ucontext
     122                 : #ifndef _STRUCT_UCONTEXT
     123                 : #if __DARWIN_UNIX03
     124                 : #define _STRUCT_UCONTEXT        struct __darwin_ucontext
     125                 : #else /* !__DARWIN_UNIX03 */
     126                 : #define _STRUCT_UCONTEXT        struct ucontext
     127                 : #endif /* __DARWIN_UNIX03 */
     128                 : _STRUCT_UCONTEXT
     129                 : {
     130                 :         int                     uc_onstack;
     131                 :         __darwin_sigset_t       uc_sigmask;     /* signal mask used by this context */
     132                 :         _STRUCT_SIGALTSTACK     uc_stack;       /* stack used by this context */
     133                 :         _STRUCT_UCONTEXT        *uc_link;       /* pointer to resuming context */
     134                 :         __darwin_size_t         uc_mcsize;      /* size of the machine context passed in */
     135                 :         _STRUCT_MCONTEXT        *uc_mcontext;   /* pointer to machine specific context */
     136                 : #ifdef _XOPEN_SOURCE
     137                 :         _STRUCT_MCONTEXT        __mcontext_data;
     138                 : #endif /* _XOPEN_SOURCE */
     139                 : };
     140                 : #endif /* _STRUCT_UCONTEXT */
     141                 : #endif /* __need_struct_ucontext */
     142                 : 
     143                 : #ifdef __need_struct_ucontext64
     144                 : #undef __need_struct_ucontext64
     145                 : #ifndef _STRUCT_UCONTEXT64
     146                 : #if __DARWIN_UNIX03
     147                 : #define _STRUCT_UCONTEXT64      struct __darwin_ucontext64
     148                 : #else /* !__DARWIN_UNIX03 */
     149                 : #define _STRUCT_UCONTEXT64      struct ucontext64
     150                 : #endif /* __DARWIN_UNIX03 */
     151                 : _STRUCT_UCONTEXT64
     152                 : {
     153                 :         int                     uc_onstack;
     154                 :         __darwin_sigset_t       uc_sigmask;     /* signal mask used by this context */
     155                 :         _STRUCT_SIGALTSTACK     uc_stack;       /* stack used by this context */
     156                 :         _STRUCT_UCONTEXT64      *uc_link;       /* pointer to resuming context */
     157                 :         __darwin_size_t         uc_mcsize;      /* size of the machine context passed in */
     158                 :         _STRUCT_MCONTEXT64      *uc_mcontext64; /* pointer to machine specific context */
     159                 : };
     160                 : #endif /* _STRUCT_UCONTEXT64 */
     161                 : #endif /* __need_struct_ucontext64 */
     162                 : 
     163                 : 
     164                 : #ifdef __need_fd_set
     165                 : #undef __need_fd_set
     166                 : #ifndef _FD_SET
     167                 : #define _FD_SET
     168                 : /*
     169                 :  * Select uses bit masks of file descriptors in longs.  These macros
     170                 :  * manipulate such bit fields (the filesystem macros use chars).  The
     171                 :  * extra protection here is to permit application redefinition above
     172                 :  * the default size.
     173                 :  */
     174                 : #ifdef FD_SETSIZE
     175                 : #define __DARWIN_FD_SETSIZE     FD_SETSIZE
     176                 : #else /* !FD_SETSIZE */
     177                 : #define __DARWIN_FD_SETSIZE     1024
     178                 : #endif /* FD_SETSIZE */
     179                 : #define __DARWIN_NBBY           8                               /* bits in a byte */
     180                 : #define __DARWIN_NFDBITS        (sizeof(__int32_t) * __DARWIN_NBBY) /* bits per mask */
     181                 : #define __DARWIN_howmany(x, y)  ((((x) % (y)) == 0) ? ((x) / (y)) : (((x) / (y)) + 1)) /* # y's == x bits? */
     182                 : 
     183                 : __BEGIN_DECLS
     184                 : typedef struct fd_set {
     185                 :         __int32_t       fds_bits[__DARWIN_howmany(__DARWIN_FD_SETSIZE, __DARWIN_NFDBITS)];
     186                 : } fd_set;
     187                 : __END_DECLS
     188                 : 
     189                 : /* This inline avoids argument side-effect issues with FD_ISSET() */
     190                 : static __inline int
     191             168 : __darwin_fd_isset(int _n, const struct fd_set *_p)
     192                 : {
     193             168 :         return (_p->fds_bits[_n/__DARWIN_NFDBITS] & (1<<(_n % __DARWIN_NFDBITS)));
     194                 : }
     195                 : 
     196                 : #define __DARWIN_FD_SET(n, p)   do { int __fd = (n); ((p)->fds_bits[__fd/__DARWIN_NFDBITS] |= (1<<(__fd % __DARWIN_NFDBITS))); } while(0)
     197                 : #define __DARWIN_FD_CLR(n, p)   do { int __fd = (n); ((p)->fds_bits[__fd/__DARWIN_NFDBITS] &= ~(1<<(__fd % __DARWIN_NFDBITS))); } while(0)
     198                 : #define __DARWIN_FD_ISSET(n, p) __darwin_fd_isset((n), (p))
     199                 : 
     200                 : #if __GNUC__ > 3 || __GNUC__ == 3 && __GNUC_MINOR__ >= 3
     201                 : /*
     202                 :  * Use the built-in bzero function instead of the library version so that
     203                 :  * we do not pollute the namespace or introduce prototype warnings.
     204                 :  */
     205                 : #define __DARWIN_FD_ZERO(p)     __builtin_bzero(p, sizeof(*(p)))
     206                 : #else
     207                 : #define __DARWIN_FD_ZERO(p)     bzero(p, sizeof(*(p)))
     208                 : #endif
     209                 : 
     210                 : #define __DARWIN_FD_COPY(f, t)  bcopy(f, t, sizeof(*(f)))
     211                 : #endif /* _FD_SET */
     212                 : #endif /* __need_fd_set */
     213                 : 
     214                 : #ifdef __need_stack_t
     215                 : #undef __need_stack_t
     216                 : #ifndef _STACK_T
     217                 : #define _STACK_T
     218                 : typedef _STRUCT_SIGALTSTACK     stack_t; /* [???] signal stack */
     219                 : #endif /* _STACK_T */
     220                 : #endif /* __need_stack_t */
     221                 : 
     222                 : #ifdef __need_ucontext_t
     223                 : #undef __need_ucontext_t
     224                 : /* user context */
     225                 : #ifndef _UCONTEXT_T
     226                 : #define _UCONTEXT_T
     227                 : typedef _STRUCT_UCONTEXT        ucontext_t;     /* [???] user context */
     228                 : #endif /* _UCONTEXT_T */
     229                 : #endif /* __need_ucontext_t */
     230                 : 
     231                 : #ifdef __need_ucontext64_t
     232                 : #undef __need_ucontext64_t
     233                 : #ifndef _UCONTEXT64_T
     234                 : #define _UCONTEXT64_T
     235                 : typedef _STRUCT_UCONTEXT64      ucontext64_t;   /* [???] user context */
     236                 : #endif /* _UCONTEXT64_T */
     237                 : #endif /* __need_ucontext64_t */

Generated by: LCOV version 1.7