1 | /*␊ |
2 | * Copyright (c) 2000-2003 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 | #ifndef␉_BSD_I386__TYPES_H_␊ |
29 | #define␉_BSD_I386__TYPES_H_␊ |
30 | ␊ |
31 | /*␊ |
32 | * This header file contains integer types. It's intended to also contain␊ |
33 | * flotaing point and other arithmetic types, as needed, later.␊ |
34 | */␊ |
35 | ␊ |
36 | #ifdef __GNUC__␊ |
37 | typedef __signed char␉␉__int8_t;␊ |
38 | #else␉/* !__GNUC__ */␊ |
39 | typedef char␉␉␉__int8_t;␊ |
40 | #endif␉/* !__GNUC__ */␊ |
41 | typedef unsigned char␉␉__uint8_t;␊ |
42 | typedef␉short␉␉␉__int16_t;␊ |
43 | typedef␉unsigned short␉␉__uint16_t;␊ |
44 | typedef int␉␉␉__int32_t;␊ |
45 | typedef unsigned int␉␉__uint32_t;␊ |
46 | typedef long long␉␉__int64_t;␊ |
47 | typedef unsigned long long␉__uint64_t;␊ |
48 | ␊ |
49 | typedef long␉␉␉__darwin_intptr_t;␊ |
50 | typedef unsigned int␉␉__darwin_natural_t;␊ |
51 | ␊ |
52 | /*␊ |
53 | * The rune type below is declared to be an ``int'' instead of the more natural␊ |
54 | * ``unsigned long'' or ``long''. Two things are happening here. It is not␊ |
55 | * unsigned so that EOF (-1) can be naturally assigned to it and used. Also,␊ |
56 | * it looks like 10646 will be a 31 bit standard. This means that if your␊ |
57 | * ints cannot hold 32 bits, you will be in trouble. The reason an int was␊ |
58 | * chosen over a long is that the is*() and to*() routines take ints (says␊ |
59 | * ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it␊ |
60 | * here, you lose a bit of ANSI conformance, but your programs will still␊ |
61 | * work.␊ |
62 | *␊ |
63 | * NOTE: rune_t is not covered by ANSI nor other standards, and should not␊ |
64 | * be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and␊ |
65 | * rune_t must be the same type. Also wint_t must be no narrower than␊ |
66 | * wchar_t, and should also be able to hold all members of the largest␊ |
67 | * character set plus one extra value (WEOF). wint_t must be at least 16 bits.␊ |
68 | */␊ |
69 | ␊ |
70 | typedef int␉␉␉__darwin_ct_rune_t;␉/* ct_rune_t */␊ |
71 | ␊ |
72 | /*␊ |
73 | * mbstate_t is an opaque object to keep conversion state, during multibyte␊ |
74 | * stream conversions. The content must not be referenced by user programs.␊ |
75 | */␊ |
76 | typedef union {␊ |
77 | ␉char␉␉__mbstate8[128];␊ |
78 | ␉long long␉_mbstateL;␉␉␉/* for alignment */␊ |
79 | } __mbstate_t;␊ |
80 | ␊ |
81 | typedef __mbstate_t␉␉__darwin_mbstate_t;␉/* mbstate_t */␊ |
82 | ␊ |
83 | #if defined(__GNUC__) && defined(__PTRDIFF_TYPE__)␊ |
84 | typedef __PTRDIFF_TYPE__␉__darwin_ptrdiff_t;␉/* ptr1 - ptr2 */␊ |
85 | #else␊ |
86 | typedef int␉␉␉__darwin_ptrdiff_t;␉/* ptr1 - ptr2 */␊ |
87 | #endif /* __GNUC__ */␊ |
88 | ␊ |
89 | #if defined(__GNUC__) && defined(__SIZE_TYPE__)␊ |
90 | typedef __SIZE_TYPE__␉␉__darwin_size_t;␉/* sizeof() */␊ |
91 | #else␊ |
92 | typedef unsigned long␉␉__darwin_size_t;␉/* sizeof() */␊ |
93 | #endif␊ |
94 | ␊ |
95 | #if (__GNUC__ > 2)␊ |
96 | typedef __builtin_va_list␉__darwin_va_list;␉/* va_list */␊ |
97 | #else␊ |
98 | typedef void *␉␉␉__darwin_va_list;␉/* va_list */␊ |
99 | #endif␊ |
100 | ␊ |
101 | #if defined(__GNUC__) && defined(__WCHAR_TYPE__)␊ |
102 | typedef __WCHAR_TYPE__␉␉__darwin_wchar_t;␉/* wchar_t */␊ |
103 | #else␊ |
104 | typedef __darwin_ct_rune_t␉__darwin_wchar_t;␉/* wchar_t */␊ |
105 | #endif␊ |
106 | ␊ |
107 | typedef __darwin_wchar_t␉__darwin_rune_t;␉/* rune_t */␊ |
108 | ␊ |
109 | #if defined(__GNUC__) && defined(__WINT_TYPE__)␊ |
110 | typedef __WINT_TYPE__␉␉__darwin_wint_t;␉/* wint_t */␊ |
111 | #else␊ |
112 | typedef __darwin_ct_rune_t␉__darwin_wint_t;␉/* wint_t */␊ |
113 | #endif␊ |
114 | ␊ |
115 | typedef unsigned long␉␉__darwin_clock_t;␉/* clock() */␊ |
116 | typedef __uint32_t␉␉__darwin_socklen_t;␉/* socklen_t (duh) */␊ |
117 | typedef long␉␉␉__darwin_ssize_t;␉/* byte count or error */␊ |
118 | typedef long␉␉␉__darwin_time_t;␉/* time() */␊ |
119 | ␊ |
120 | #endif␉/* _BSD_I386__TYPES_H_ */␊ |
121 | |