File: /usr/include/sys/_types.h

Green shading in the line number column means the source is part of the translation unit, red means it is conditionally excluded. Highlighted line numbers link to the translation unit page. Highlighted macros link to the macro page.

       1: /*
       2:  * Copyright (c) 2003-2007 Apple 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: #ifndef _SYS__TYPES_H_
      30: #define _SYS__TYPES_H_
      31: 
      32: #include <sys/cdefs.h>
      33: #include <machine/_types.h>
      34: 
      35: /*
      36:  * Type definitions; takes common type definitions that must be used
      37:  * in multiple header files due to [XSI], removes them from the system
      38:  * space, and puts them in the implementation space.
      39:  */
      40: 
      41: #ifdef __cplusplus
      42: #ifdef __GNUG__
      43: #define __DARWIN_NULL __null
      44: #else /* ! __GNUG__ */
      45: #ifdef __LP64__
      46: #define __DARWIN_NULL (0L)
      47: #else /* !__LP64__ */
      48: #define __DARWIN_NULL 0
      49: #endif /* __LP64__ */
      50: #endif /* __GNUG__ */
      51: #else /* ! __cplusplus */
      52: #define __DARWIN_NULL ((void *)0)
      53: #endif /* __cplusplus */
      54: 
      55: typedef    __int64_t    __darwin_blkcnt_t;    /* total blocks */
      56: typedef    __int32_t    __darwin_blksize_t;    /* preferred block size */
      57: typedef __int32_t    __darwin_dev_t;        /* dev_t */
      58: typedef unsigned int    __darwin_fsblkcnt_t;    /* Used by statvfs and fstatvfs */
      59: typedef unsigned int    __darwin_fsfilcnt_t;    /* Used by statvfs and fstatvfs */
      60: typedef __uint32_t    __darwin_gid_t;        /* [???] process and group IDs */
      61: typedef __uint32_t    __darwin_id_t;        /* [XSI] pid_t, uid_t, or gid_t*/
      62: typedef __uint64_t    __darwin_ino64_t;    /* [???] Used for 64 bit inodes */
      63: #if __DARWIN_64_BIT_INO_T
      64: typedef __darwin_ino64_t __darwin_ino_t;    /* [???] Used for inodes */
      65: #else /* !__DARWIN_64_BIT_INO_T */
      66: typedef __uint32_t    __darwin_ino_t;        /* [???] Used for inodes */
      67: #endif /* __DARWIN_64_BIT_INO_T */
      68: typedef __darwin_natural_t __darwin_mach_port_name_t; /* Used by mach */
      69: typedef __darwin_mach_port_name_t __darwin_mach_port_t; /* Used by mach */
      70: typedef __uint16_t    __darwin_mode_t;    /* [???] Some file attributes */
      71: typedef __int64_t    __darwin_off_t;        /* [???] Used for file sizes */
      72: typedef __int32_t    __darwin_pid_t;        /* [???] process and group IDs */
      73: typedef __uint32_t    __darwin_sigset_t;    /* [???] signal set */
      74: typedef __int32_t    __darwin_suseconds_t;    /* [???] microseconds */
      75: typedef __uint32_t    __darwin_uid_t;        /* [???] user IDs */
      76: typedef __uint32_t    __darwin_useconds_t;    /* [???] microseconds */
      77: typedef    unsigned char    __darwin_uuid_t[16];
      78: typedef    char    __darwin_uuid_string_t[37];
      79: 
      80: #include <sys/_pthread/_pthread_types.h>
      81: 
      82: #if defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 5 || __GNUC__ > 3)
      83: #define __offsetof(type, field) __builtin_offsetof(type, field)
      84: #else /* !(gcc >= 3.5) */
      85: #define __offsetof(type, field) ((size_t)(&((type *)0)->field))
      86: #endif /* (gcc >= 3.5) */
      87: 
      88: 
      89: #endif    /* _SYS__TYPES_H_ */
      90: