Chameleon Applications

Chameleon Applications Svn Source Tree

Root/branches/iFabio/Chameleon/i386/include/architecture/byte_order.h

Source at commit 296 created 12 years 10 months ago.
By ifabio, add i386 folder
1/*
2 * Copyright (c) 1999-2008 Apple Computer, Inc. All rights reserved.
3 *
4 * @APPLE_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. Please obtain a copy of the License at
10 * http://www.opensource.apple.com/apsl/ and read it before using this
11 * file.
12 *
13 * The Original Code and all software distributed under the License are
14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
18 * Please see the License for the specific language governing rights and
19 * limitations under the License.
20 *
21 * @APPLE_LICENSE_HEADER_END@
22 */
23/*
24 * Copyright (c) 1992 NeXT Computer, Inc.
25 *
26 * Byte ordering conversion.
27 *
28 */
29
30#ifndef_ARCHITECTURE_BYTE_ORDER_H_
31#define _ARCHITECTURE_BYTE_ORDER_H_
32
33/*
34 * Please note that the byte ordering functions in this file are deprecated.
35 * A replacement API exists in libkern/OSByteOrder.h
36 */
37
38#include <libkern/OSByteOrder.h>
39
40typedef unsigned long NXSwappedFloat;
41typedef unsigned long long NXSwappedDouble;
42
43static __inline__ __attribute__((deprecated))
44unsigned short
45NXSwapShort(
46 unsigned short inv
47)
48{
49 return (unsigned short)OSSwapInt16((uint16_t)inv);
50}
51
52static __inline__ __attribute__((deprecated))
53unsigned int
54NXSwapInt(
55 unsigned int inv
56)
57{
58 return (unsigned int)OSSwapInt32((uint32_t)inv);
59}
60
61static __inline__ __attribute__((deprecated))
62unsigned long
63NXSwapLong(
64 unsigned long inv
65)
66{
67 return (unsigned long)OSSwapInt32((uint32_t)inv);
68}
69
70static __inline__ __attribute__((deprecated))
71unsigned long long
72NXSwapLongLong(
73 unsigned long long inv
74)
75{
76 return (unsigned long long)OSSwapInt64((uint64_t)inv);
77}
78
79static __inline__ __attribute__((deprecated))
80NXSwappedFloat
81NXConvertHostFloatToSwapped(float x)
82{
83 union fconv {
84 float number;
85 NXSwappedFloat sf;
86 } u;
87 u.number = x;
88 return u.sf;
89}
90
91static __inline__ __attribute__((deprecated))
92float
93NXConvertSwappedFloatToHost(NXSwappedFloat x)
94{
95 union fconv {
96 float number;
97 NXSwappedFloat sf;
98 } u;
99 u.sf = x;
100 return u.number;
101}
102
103static __inline__ __attribute__((deprecated))
104NXSwappedDouble
105NXConvertHostDoubleToSwapped(double x)
106{
107 union dconv {
108 double number;
109 NXSwappedDouble sd;
110 } u;
111 u.number = x;
112 return u.sd;
113}
114
115static __inline__ __attribute__((deprecated))
116double
117NXConvertSwappedDoubleToHost(NXSwappedDouble x)
118{
119 union dconv {
120 double number;
121 NXSwappedDouble sd;
122 } u;
123 u.sd = x;
124 return u.number;
125}
126
127static __inline__ __attribute__((deprecated))
128NXSwappedFloat
129NXSwapFloat(NXSwappedFloat x)
130{
131 return (NXSwappedFloat)OSSwapInt32((uint32_t)x);
132}
133
134static __inline__ __attribute__((deprecated))
135NXSwappedDouble
136NXSwapDouble(NXSwappedDouble x)
137{
138 return (NXSwappedDouble)OSSwapInt64((uint64_t)x);
139}
140
141/*
142 * Identify the byte order
143 * of the current host.
144 */
145
146enum NXByteOrder {
147 NX_UnknownByteOrder,
148 NX_LittleEndian,
149 NX_BigEndian
150};
151
152static __inline__
153enum NXByteOrder
154NXHostByteOrder(void)
155{
156#if defined(__LITTLE_ENDIAN__)
157 return NX_LittleEndian;
158#elif defined(__BIG_ENDIAN__)
159 return NX_BigEndian;
160#else
161 return NX_UnknownByteOrder;
162#endif
163}
164
165static __inline__ __attribute__((deprecated))
166unsigned short
167NXSwapBigShortToHost(
168 unsigned shortx
169)
170{
171 return (unsigned short)OSSwapBigToHostInt16((uint16_t)x);
172}
173
174static __inline__ __attribute__((deprecated))
175unsigned int
176NXSwapBigIntToHost(
177 unsigned intx
178)
179{
180 return (unsigned int)OSSwapBigToHostInt32((uint32_t)x);
181}
182
183static __inline__ __attribute__((deprecated))
184unsigned long
185NXSwapBigLongToHost(
186 unsigned longx
187)
188{
189 return (unsigned long)OSSwapBigToHostInt32((uint32_t)x);
190}
191
192static __inline__ __attribute__((deprecated))
193unsigned long long
194NXSwapBigLongLongToHost(
195 unsigned long longx
196)
197{
198 return (unsigned long long)OSSwapBigToHostInt64((uint64_t)x);
199}
200
201static __inline__ __attribute__((deprecated))
202double
203NXSwapBigDoubleToHost(
204 NXSwappedDoublex
205)
206{
207 return NXConvertSwappedDoubleToHost((NXSwappedDouble)OSSwapBigToHostInt64((uint64_t)x));
208}
209
210static __inline__ __attribute__((deprecated))
211float
212NXSwapBigFloatToHost(
213 NXSwappedFloatx
214)
215{
216 return NXConvertSwappedFloatToHost((NXSwappedFloat)OSSwapBigToHostInt32((uint32_t)x));
217}
218
219static __inline__ __attribute__((deprecated))
220unsigned short
221NXSwapHostShortToBig(
222 unsigned shortx
223)
224{
225 return (unsigned short)OSSwapHostToBigInt16((uint16_t)x);
226}
227
228static __inline__ __attribute__((deprecated))
229unsigned int
230NXSwapHostIntToBig(
231 unsigned intx
232)
233{
234 return (unsigned int)OSSwapHostToBigInt32((uint32_t)x);
235}
236
237static __inline__ __attribute__((deprecated))
238unsigned long
239NXSwapHostLongToBig(
240 unsigned longx
241)
242{
243 return (unsigned long)OSSwapHostToBigInt32((uint32_t)x);
244}
245
246static __inline__ __attribute__((deprecated))
247unsigned long long
248NXSwapHostLongLongToBig(
249 unsigned long longx
250)
251{
252 return (unsigned long long)OSSwapHostToBigInt64((uint64_t)x);
253}
254
255static __inline__ __attribute__((deprecated))
256NXSwappedDouble
257NXSwapHostDoubleToBig(
258 doublex
259)
260{
261 return (NXSwappedDouble)OSSwapHostToBigInt64((uint64_t)NXConvertHostDoubleToSwapped(x));
262}
263
264static __inline__ __attribute__((deprecated))
265NXSwappedFloat
266NXSwapHostFloatToBig(
267 floatx
268)
269{
270 return (NXSwappedFloat)OSSwapHostToBigInt32((uint32_t)NXConvertHostFloatToSwapped(x));
271}
272
273static __inline__ __attribute__((deprecated))
274unsigned short
275NXSwapLittleShortToHost(
276 unsigned shortx
277)
278{
279 return (unsigned short)OSSwapLittleToHostInt16((uint16_t)x);
280}
281
282static __inline__ __attribute__((deprecated))
283unsigned int
284NXSwapLittleIntToHost(
285 unsigned intx
286)
287{
288 return (unsigned int)OSSwapLittleToHostInt32((uint32_t)x);
289}
290
291static __inline__ __attribute__((deprecated))
292unsigned long
293NXSwapLittleLongToHost(
294 unsigned longx
295)
296{
297 return (unsigned long)OSSwapLittleToHostInt32((uint32_t)x);
298}
299
300static __inline__ __attribute__((deprecated))
301unsigned long long
302NXSwapLittleLongLongToHost(
303 unsigned long longx
304)
305{
306 return (unsigned long long)OSSwapLittleToHostInt64((uint64_t)x);
307}
308
309static __inline__ __attribute__((deprecated))
310double
311NXSwapLittleDoubleToHost(
312 NXSwappedDoublex
313)
314{
315 return NXConvertSwappedDoubleToHost((NXSwappedDouble)OSSwapLittleToHostInt64((uint64_t)x));
316}
317
318static __inline__ __attribute__((deprecated))
319float
320NXSwapLittleFloatToHost(
321 NXSwappedFloatx
322)
323{
324 return NXConvertSwappedFloatToHost((NXSwappedFloat)OSSwapLittleToHostInt32((uint32_t)x));
325}
326
327static __inline__ __attribute__((deprecated))
328unsigned short
329NXSwapHostShortToLittle(
330 unsigned shortx
331)
332{
333 return (unsigned short)OSSwapHostToLittleInt16((uint16_t)x);
334}
335
336static __inline__ __attribute__((deprecated))
337unsigned int
338NXSwapHostIntToLittle(
339 unsigned intx
340)
341{
342 return (unsigned int)OSSwapHostToLittleInt32((uint32_t)x);
343}
344
345static __inline__ __attribute__((deprecated))
346unsigned long
347NXSwapHostLongToLittle(
348 unsigned longx
349)
350{
351 return (unsigned long)OSSwapHostToLittleInt32((uint32_t)x);
352}
353
354static __inline__ __attribute__((deprecated))
355unsigned long long
356NXSwapHostLongLongToLittle(
357 unsigned long longx
358)
359{
360 return (unsigned long long)OSSwapHostToLittleInt64((uint64_t)x);
361}
362
363static __inline__ __attribute__((deprecated))
364NXSwappedDouble
365NXSwapHostDoubleToLittle(
366 doublex
367)
368{
369 return (NXSwappedDouble)OSSwapHostToLittleInt64((uint64_t)NXConvertHostDoubleToSwapped(x));
370}
371
372static __inline__ __attribute__((deprecated))
373NXSwappedFloat
374NXSwapHostFloatToLittle(
375 floatx
376)
377{
378 return (NXSwappedFloat)OSSwapHostToLittleInt32((uint32_t)NXConvertHostFloatToSwapped(x));
379}
380
381#endif/* _ARCHITECTURE_BYTE_ORDER_H_ */
382

Archive Download this file

Revision: 296