]> git.saurik.com Git - apple/xnu.git/blob - libkern/libkern/OSTypes.h
a57a3fb637c18f529b0317d396bd3657460f4b21
[apple/xnu.git] / libkern / libkern / OSTypes.h
1 /*
2 * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * The contents of this file constitute Original Code as defined in and
7 * are subject to the Apple Public Source License Version 1.1 (the
8 * "License"). You may not use this file except in compliance with the
9 * License. Please obtain a copy of the License at
10 * http://www.apple.com/publicsource and read it before using this file.
11 *
12 * This Original Code and all software distributed under the License are
13 * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
14 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
15 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
17 * License for the specific language governing rights and limitations
18 * under the License.
19 *
20 * @APPLE_LICENSE_HEADER_END@
21 */
22 /*
23 * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
24 *
25 * HISTORY
26 *
27 */
28
29 #ifndef _OS_OSTYPES_H
30 #define _OS_OSTYPES_H
31
32 typedef unsigned int UInt;
33 typedef signed int SInt;
34
35 #ifndef __MACTYPES__ /* CF MacTypes.h */
36 #ifndef __TYPES__ /* guess... Mac Types.h */
37
38 typedef unsigned char UInt8;
39 typedef unsigned short UInt16;
40 typedef unsigned long UInt32;
41 typedef unsigned long long UInt64;
42 #if defined(__BIG_ENDIAN__)
43 typedef struct UnsignedWide {
44 UInt32 hi;
45 UInt32 lo;
46 } UnsignedWide;
47 #elif defined(__LITTLE_ENDIAN__)
48 typedef struct UnsignedWide {
49 UInt32 lo;
50 UInt32 hi;
51 } UnsignedWide;
52 #else
53 #error Unknown endianess.
54 #endif
55
56 typedef signed char SInt8;
57 typedef signed short SInt16;
58 typedef signed long SInt32;
59 typedef signed long long SInt64;
60 #if defined(__BIG_ENDIAN__)
61 typedef struct wide {
62 SInt32 hi;
63 UInt32 lo;
64 } wide;
65 #elif defined(__LITTLE_ENDIAN__)
66 typedef struct wide {
67 UInt32 lo;
68 SInt32 hi;
69 } wide;
70 #else
71 #error Unknown endianess.
72 #endif
73
74 typedef SInt32 OSStatus;
75 typedef UnsignedWide AbsoluteTime;
76 typedef UInt32 OptionBits;
77
78 typedef unsigned char Boolean;
79
80 #endif /* __TYPES__ */
81 #endif /* __MACTYPES__ */
82
83 #endif /* _OS_OSTYPES_H */