--- /dev/null
+/*
+ * Copyright (c) 2000-2004 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * Copyright (c) 1992 NeXT Computer, Inc.
+ *
+ * Byte ordering conversion.
+ */
+
+#ifndef _ARCHITECTURE_BYTE_ORDER_H_
+#define _ARCHITECTURE_BYTE_ORDER_H_
+
+typedef unsigned long NXSwappedFloat;
+typedef unsigned long long NXSwappedDouble;
+
+#if defined (__ppc__) || defined(__ppc64__)
+#include "architecture/ppc/byte_order.h"
+#elif defined (__i386__)
+#include "architecture/i386/byte_order.h"
+#else
+#error architecture not supported
+#endif
+
+/*
+ * Identify the byte order
+ * of the current host.
+ */
+
+enum NXByteOrder {
+ NX_UnknownByteOrder,
+ NX_LittleEndian,
+ NX_BigEndian
+};
+
+static __inline__
+enum NXByteOrder
+NXHostByteOrder(void)
+{
+ unsigned int _x;
+
+ _x = (NX_BigEndian << 24) | NX_LittleEndian;
+
+ return ((enum NXByteOrder)*((unsigned char *)&_x));
+}
+
+/*
+ * The predicated versions
+ * are defined here in terms
+ * of the unpredicated ones.
+ */
+
+#if __BIG_ENDIAN__
+
+static __inline__
+unsigned short
+NXSwapBigShortToHost(
+ unsigned short x
+)
+{
+ return (x);
+}
+
+static __inline__
+unsigned int
+NXSwapBigIntToHost(
+ unsigned int x
+)
+{
+ return (x);
+}
+
+static __inline__
+unsigned long
+NXSwapBigLongToHost(
+ unsigned long x
+)
+{
+ return (x);
+}
+
+static __inline__
+unsigned long long
+NXSwapBigLongLongToHost(
+ unsigned long long x
+)
+{
+ return (x);
+}
+
+#ifndef KERNEL
+
+static __inline__
+double
+NXSwapBigDoubleToHost(
+ NXSwappedDouble x
+)
+{
+ return NXConvertSwappedDoubleToHost(x);
+}
+
+static __inline__
+float
+NXSwapBigFloatToHost(
+ NXSwappedFloat x
+)
+{
+ return NXConvertSwappedFloatToHost(x);
+}
+
+#endif /* KERNEL */
+
+static __inline__
+unsigned short
+NXSwapHostShortToBig(
+ unsigned short x
+)
+{
+ return (x);
+}
+
+static __inline__
+unsigned int
+NXSwapHostIntToBig(
+ unsigned int x
+)
+{
+ return (x);
+}
+
+static __inline__
+unsigned long
+NXSwapHostLongToBig(
+ unsigned long x
+)
+{
+ return (x);
+}
+
+static __inline__
+unsigned long long
+NXSwapHostLongLongToBig(
+ unsigned long long x
+)
+{
+ return (x);
+}
+
+#ifndef KERNEL
+
+static __inline__
+NXSwappedDouble
+NXSwapHostDoubleToBig(
+ double x
+)
+{
+ return NXConvertHostDoubleToSwapped(x);
+}
+
+static __inline__
+NXSwappedFloat
+NXSwapHostFloatToBig(
+ float x
+)
+{
+ return NXConvertHostFloatToSwapped(x);
+}
+
+#endif /* KERNEL */
+
+static __inline__
+unsigned short
+NXSwapLittleShortToHost(
+ unsigned short x
+)
+{
+ return (NXSwapShort(x));
+}
+
+static __inline__
+unsigned int
+NXSwapLittleIntToHost(
+ unsigned int x
+)
+{
+ return (NXSwapInt(x));
+}
+
+static __inline__
+unsigned long
+NXSwapLittleLongToHost(
+ unsigned long x
+)
+{
+ return (NXSwapLong(x));
+}
+
+static __inline__
+unsigned long long
+NXSwapLittleLongLongToHost(
+ unsigned long long x
+)
+{
+ return (NXSwapLongLong(x));
+}
+
+#ifndef KERNEL
+
+static __inline__
+double
+NXSwapLittleDoubleToHost(
+ NXSwappedDouble x
+)
+{
+ return NXConvertSwappedDoubleToHost(NXSwapDouble(x));
+}
+
+static __inline__
+float
+NXSwapLittleFloatToHost(
+ NXSwappedFloat x
+)
+{
+ return NXConvertSwappedFloatToHost(NXSwapFloat(x));
+}
+
+#endif /* KERNEL */
+
+static __inline__
+unsigned short
+NXSwapHostShortToLittle(
+ unsigned short x
+)
+{
+ return (NXSwapShort(x));
+}
+
+static __inline__
+unsigned int
+NXSwapHostIntToLittle(
+ unsigned int x
+)
+{
+ return (NXSwapInt(x));
+}
+
+static __inline__
+unsigned long
+NXSwapHostLongToLittle(
+ unsigned long x
+)
+{
+ return (NXSwapLong(x));
+}
+
+static __inline__
+unsigned long long
+NXSwapHostLongLongToLittle(
+ unsigned long long x
+)
+{
+ return (NXSwapLongLong(x));
+}
+
+#ifndef KERNEL
+
+static __inline__
+NXSwappedDouble
+NXSwapHostDoubleToLittle(
+ double x
+)
+{
+ return NXSwapDouble(NXConvertHostDoubleToSwapped(x));
+}
+
+static __inline__
+NXSwappedFloat
+NXSwapHostFloatToLittle(
+ float x
+)
+{
+ return NXSwapFloat(NXConvertHostFloatToSwapped(x));
+}
+
+#endif /* KERNEL */
+#endif /*__BIG_ENDIAN__ */
+
+#if __LITTLE_ENDIAN__
+
+static __inline__
+unsigned short
+NXSwapBigShortToHost(
+ unsigned short x
+)
+{
+ return (NXSwapShort(x));
+}
+
+static __inline__
+unsigned int
+NXSwapBigIntToHost(
+ unsigned int x
+)
+{
+ return (NXSwapInt(x));
+}
+
+static __inline__
+unsigned long
+NXSwapBigLongToHost(
+ unsigned long x
+)
+{
+ return (NXSwapLong(x));
+}
+
+static __inline__
+unsigned long long
+NXSwapBigLongLongToHost(
+ unsigned long long x
+)
+{
+ return (NXSwapLongLong(x));
+}
+
+static __inline__
+double
+NXSwapBigDoubleToHost(
+ NXSwappedDouble x
+)
+{
+ return NXConvertSwappedDoubleToHost(NXSwapDouble(x));
+}
+
+static __inline__
+float
+NXSwapBigFloatToHost(
+ NXSwappedFloat x
+)
+{
+ return NXConvertSwappedFloatToHost(NXSwapFloat(x));
+}
+
+static __inline__
+unsigned short
+NXSwapHostShortToBig(
+ unsigned short x
+)
+{
+ return (NXSwapShort(x));
+}
+
+static __inline__
+unsigned int
+NXSwapHostIntToBig(
+ unsigned int x
+)
+{
+ return (NXSwapInt(x));
+}
+
+static __inline__
+unsigned long
+NXSwapHostLongToBig(
+ unsigned long x
+)
+{
+ return (NXSwapLong(x));
+}
+
+static __inline__
+unsigned long long
+NXSwapHostLongLongToBig(
+ unsigned long long x
+)
+{
+ return (NXSwapLongLong(x));
+}
+
+static __inline__
+NXSwappedDouble
+NXSwapHostDoubleToBig(
+ double x
+)
+{
+ return (NXSwapDouble(NXConvertHostDoubleToSwapped(x)));
+}
+
+static __inline__
+NXSwappedFloat
+NXSwapHostFloatToBig(
+ float x
+)
+{
+ return (NXSwapFloat(NXConvertHostFloatToSwapped(x)));
+}
+
+static __inline__
+unsigned short
+NXSwapLittleShortToHost(
+ unsigned short x
+)
+{
+ return (x);
+}
+
+static __inline__
+unsigned int
+NXSwapLittleIntToHost(
+ unsigned int x
+)
+{
+ return (x);
+}
+
+static __inline__
+unsigned long
+NXSwapLittleLongToHost(
+ unsigned long x
+)
+{
+ return (x);
+}
+
+static __inline__
+unsigned long long
+NXSwapLittleLongLongToHost(
+ unsigned long long x
+)
+{
+ return (x);
+}
+
+static __inline__
+double
+NXSwapLittleDoubleToHost(
+ NXSwappedDouble x
+)
+{
+ return NXConvertSwappedDoubleToHost(x);
+}
+
+static __inline__
+float
+NXSwapLittleFloatToHost(
+ NXSwappedFloat x
+)
+{
+ return NXConvertSwappedFloatToHost(x);
+}
+
+static __inline__
+unsigned short
+NXSwapHostShortToLittle(
+ unsigned short x
+)
+{
+ return (x);
+}
+
+static __inline__
+unsigned int
+NXSwapHostIntToLittle(
+ unsigned int x
+)
+{
+ return (x);
+}
+
+static __inline__
+unsigned long
+NXSwapHostLongToLittle(
+ unsigned long x
+)
+{
+ return (x);
+}
+
+static __inline__
+unsigned long long
+NXSwapHostLongLongToLittle(
+ unsigned long long x
+)
+{
+ return (x);
+}
+
+static __inline__
+NXSwappedDouble
+NXSwapHostDoubleToLittle(
+ double x
+)
+{
+ return NXConvertHostDoubleToSwapped(x);
+}
+
+static __inline__
+NXSwappedFloat
+NXSwapHostFloatToLittle(
+ float x
+)
+{
+ return NXConvertHostFloatToSwapped(x);
+}
+
+#endif /* __LITTLE_ENDIAN__ */
+
+#endif /* _ARCHITECTURE_BYTE_ORDER_H_ */