comparison druntime/import/core/stdc/stdint.d @ 1458:e0b2d67cfe7c

Added druntime (this should be removed once it works).
author Robert Clipsham <robert@octarineparrot.com>
date Tue, 02 Jun 2009 17:43:06 +0100
parents
children
comparison
equal deleted inserted replaced
1456:7b218ec1044f 1458:e0b2d67cfe7c
1 /**
2 * D header file for C99.
3 *
4 * Copyright: Copyright Sean Kelly 2005 - 2009.
5 * License: <a href="http://www.boost.org/LICENSE_1_0.txt>Boost License 1.0</a>.
6 * Authors: Sean Kelly
7 * Standards: ISO/IEC 9899:1999 (E)
8 *
9 * Copyright Sean Kelly 2005 - 2009.
10 * Distributed under the Boost Software License, Version 1.0.
11 * (See accompanying file LICENSE_1_0.txt or copy at
12 * http://www.boost.org/LICENSE_1_0.txt)
13 */
14 module core.stdc.stdint;
15
16 private import core.stdc.stddef; // for ptrdiff_t, size_t, wchar_t
17 private import core.stdc.signal; // for sig_atomic_t
18 private import core.stdc.wchar_; // for wint_t
19
20 private
21 {
22 template typify(T)
23 {
24 T typify( T val ) { return val; }
25 }
26 }
27
28 extern (C):
29
30 alias byte int8_t;
31 alias short int16_t;
32 alias int int32_t;
33 alias long int64_t;
34 //alias cent int128_t;
35
36 alias ubyte uint8_t;
37 alias ushort uint16_t;
38 alias uint uint32_t;
39 alias ulong uint64_t;
40 //alias ucent uint128_t;
41
42 alias byte int_least8_t;
43 alias short int_least16_t;
44 alias int int_least32_t;
45 alias long int_least64_t;
46
47 alias ubyte uint_least8_t;
48 alias ushort uint_least16_t;
49 alias uint uint_least32_t;
50 alias ulong uint_least64_t;
51
52 alias byte int_fast8_t;
53 alias int int_fast16_t;
54 alias int int_fast32_t;
55 alias long int_fast64_t;
56
57 alias ubyte uint_fast8_t;
58 alias uint uint_fast16_t;
59 alias uint uint_fast32_t;
60 alias ulong uint_fast64_t;
61
62 version( X86_64 )
63 {
64 alias long intptr_t;
65 alias ulong uintptr_t;
66 }
67 else
68 {
69 alias int intptr_t;
70 alias uint uintptr_t;
71 }
72
73 alias long intmax_t;
74 alias ulong uintmax_t;
75
76 enum int8_t INT8_MIN = int8_t.min;
77 enum int8_t INT8_MAX = int8_t.max;
78 enum int16_t INT16_MIN = int16_t.min;
79 enum int16_t INT16_MAX = int16_t.max;
80 enum int32_t INT32_MIN = int32_t.min;
81 enum int32_t INT32_MAX = int32_t.max;
82 enum int64_t INT64_MIN = int64_t.min;
83 enum int64_t INT64_MAX = int64_t.max;
84
85 enum uint8_t UINT8_MAX = uint8_t.max;
86 enum uint16_t UINT16_MAX = uint16_t.max;
87 enum uint32_t UINT32_MAX = uint32_t.max;
88 enum uint64_t UINT64_MAX = uint64_t.max;
89
90 enum int_least8_t INT_LEAST8_MIN = int_least8_t.min;
91 enum int_least8_t INT_LEAST8_MAX = int_least8_t.max;
92 enum int_least16_t INT_LEAST16_MIN = int_least16_t.min;
93 enum int_least16_t INT_LEAST16_MAX = int_least16_t.max;
94 enum int_least32_t INT_LEAST32_MIN = int_least32_t.min;
95 enum int_least32_t INT_LEAST32_MAX = int_least32_t.max;
96 enum int_least64_t INT_LEAST64_MIN = int_least64_t.min;
97 enum int_least64_t INT_LEAST64_MAX = int_least64_t.max;
98
99 enum uint_least8_t UINT_LEAST8_MAX = uint_least8_t.max;
100 enum uint_least16_t UINT_LEAST16_MAX = uint_least16_t.max;
101 enum uint_least32_t UINT_LEAST32_MAX = uint_least32_t.max;
102 enum uint_least64_t UINT_LEAST64_MAX = uint_least64_t.max;
103
104 enum int_fast8_t INT_FAST8_MIN = int_fast8_t.min;
105 enum int_fast8_t INT_FAST8_MAX = int_fast8_t.max;
106 enum int_fast16_t INT_FAST16_MIN = int_fast16_t.min;
107 enum int_fast16_t INT_FAST16_MAX = int_fast16_t.max;
108 enum int_fast32_t INT_FAST32_MIN = int_fast32_t.min;
109 enum int_fast32_t INT_FAST32_MAX = int_fast32_t.max;
110 enum int_fast64_t INT_FAST64_MIN = int_fast64_t.min;
111 enum int_fast64_t INT_FAST64_MAX = int_fast64_t.max;
112
113 enum uint_fast8_t UINT_FAST8_MAX = uint_fast8_t.max;
114 enum uint_fast16_t UINT_FAST16_MAX = uint_fast16_t.max;
115 enum uint_fast32_t UINT_FAST32_MAX = uint_fast32_t.max;
116 enum uint_fast64_t UINT_FAST64_MAX = uint_fast64_t.max;
117
118 enum intptr_t INTPTR_MIN = intptr_t.min;
119 enum intptr_t INTPTR_MAX = intptr_t.max;
120
121 enum uintptr_t UINTPTR_MIN = uintptr_t.min;
122 enum uintptr_t UINTPTR_MAX = uintptr_t.max;
123
124 enum intmax_t INTMAX_MIN = intmax_t.min;
125 enum intmax_t INTMAX_MAX = intmax_t.max;
126
127 enum uintmax_t UINTMAX_MAX = uintmax_t.max;
128
129 enum ptrdiff_t PTRDIFF_MIN = ptrdiff_t.min;
130 enum ptrdiff_t PTRDIFF_MAX = ptrdiff_t.max;
131
132 enum sig_atomic_t SIG_ATOMIC_MIN = sig_atomic_t.min;
133 enum sig_atomic_t SIG_ATOMIC_MAX = sig_atomic_t.max;
134
135 enum size_t SIZE_MAX = size_t.max;
136
137 enum wchar_t WCHAR_MIN = wchar_t.min;
138 enum wchar_t WCHAR_MAX = wchar_t.max;
139
140 enum wint_t WINT_MIN = wint_t.min;
141 enum wint_t WINT_MAX = wint_t.max;
142
143 alias typify!(int8_t) INT8_C;
144 alias typify!(int16_t) INT16_C;
145 alias typify!(int32_t) INT32_C;
146 alias typify!(int64_t) INT64_C;
147
148 alias typify!(uint8_t) UINT8_C;
149 alias typify!(uint16_t) UINT16_C;
150 alias typify!(uint32_t) UINT32_C;
151 alias typify!(uint64_t) UINT64_C;
152
153 alias typify!(intmax_t) INTMAX_C;
154 alias typify!(uintmax_t) UINTMAX_C;