1 /* 2 * Copyright (c) 1999-2012 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 #if !defined(KERNEL) 30 #include <MacTypes.h> 31 #endif /* !KERNEL */ 32 33 #ifndef _OS_OSTYPES_H 34 #define _OS_OSTYPES_H 35 36 #define OSTYPES_K64_REV 2 37 38 typedef unsigned int UInt; 39 typedef signed int SInt; 40 41 #if defined(KERNEL) 42 43 typedef unsigned char UInt8; 44 typedef unsigned short UInt16; 45 #if __LP64__ 46 typedef unsigned int UInt32; 47 #else 48 typedef unsigned long UInt32; 49 #endif 50 typedef unsigned long long UInt64; 51 #if defined(__BIG_ENDIAN__) 52 typedef struct __attribute__((deprecated)) UnsignedWide { 53 UInt32 hi; 54 UInt32 lo; 55 } UnsignedWide __attribute__((deprecated)); 56 #elif defined(__LITTLE_ENDIAN__) 57 typedef struct __attribute__((deprecated)) UnsignedWide { 58 UInt32 lo; 59 UInt32 hi; 60 } UnsignedWide __attribute__((deprecated)); 61 #else 62 #error Unknown endianess. 63 #endif 64 65 typedef signed char SInt8; 66 typedef signed short SInt16; 67 #if __LP64__ 68 typedef signed int SInt32; 69 #else 70 typedef signed long SInt32; 71 #endif 72 typedef signed long long SInt64; 73 74 typedef SInt32 OSStatus; 75 76 #ifndef ABSOLUTETIME_SCALAR_TYPE 77 #define ABSOLUTETIME_SCALAR_TYPE 1 78 #endif 79 typedef UInt64 AbsoluteTime; 80 81 typedef UInt32 OptionBits __attribute__((deprecated)); 82 83 #if defined(__LP64__) 84 /* 85 * Use intrinsic boolean types for the LP64 kernel, otherwise maintain 86 * source and binary backward compatibility. This attempts to resolve 87 * the "(x == true)" vs. "(x)" conditional issue. 88 */ 89 #ifdef __cplusplus 90 typedef bool Boolean; 91 #else /* !__cplusplus */ 92 #if defined(__STDC_VERSION__) && ((__STDC_VERSION__ - 199901L) > 0L) 93 /* only use this if we are sure we are using a c99 compiler */ 94 typedef _Bool Boolean; 95 #else /* !c99 */ 96 /* Fall back to previous definition unless c99 */ 97 typedef unsigned char Boolean; 98 #endif /* !c99 */ 99 #endif /* !__cplusplus */ 100 #else /* !__LP64__ */ 101 typedef unsigned char Boolean; 102 #endif /* !__LP64__ */ 103 104 #endif /* KERNEL */ 105 106 #include <sys/_types/_os_inline.h> 107 108 #endif /* _OS_OSTYPES_H */ 109