| #ifndef _XARCH_H_ |
| #define _XARCH_H_ |
| |
| /* |
| * Copyright 1997 Metro Link Incorporated |
| * |
| * All Rights Reserved |
| * |
| * Permission to use, copy, modify, distribute, and sell this software and its |
| * documentation for any purpose is hereby granted without fee, provided that |
| * the above copyright notice appear in all copies and that both that |
| * copyright notice and this permission notice appear in supporting |
| * documentation, and that the names of the above listed copyright holder(s) |
| * not be used in advertising or publicity pertaining to distribution of |
| * the software without specific, written prior permission. The above listed |
| * copyright holder(s) make(s) no representations about the suitability of |
| * this software for any purpose. It is provided "as is" without express or |
| * implied warranty. |
| * |
| * THE ABOVE LISTED COPYRIGHT HOLDER(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD |
| * TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY |
| * AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE |
| * LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY |
| * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER |
| * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING |
| * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
| */ |
| /* $XFree86: xc/include/Xarch.h,v 1.10tsi Exp $ */ |
| |
| |
| /* |
| * Determine the machine's byte order. |
| */ |
| |
| /* See if it is set in the imake config first */ |
| #ifdef X_BYTE_ORDER |
| |
| #define X_BIG_ENDIAN 4321 |
| #define X_LITTLE_ENDIAN 1234 |
| |
| #else |
| |
| #ifdef SVR4 |
| #if defined(NCR) || defined(Mips) || defined(__sgi) |
| #include <sys/endian.h> |
| #else |
| #if !defined(sun) |
| #include <sys/byteorder.h> |
| #endif |
| #endif |
| #elif defined(CSRG_BASED) |
| #if defined(__NetBSD__) || defined(__OpenBSD__) |
| #include <sys/types.h> |
| #endif |
| #include <machine/endian.h> |
| #elif defined(linux) |
| #if defined __STRICT_ANSI__ |
| #undef __STRICT_ANSI__ |
| #include <endian.h> |
| #define __STRICT_ANSI__ |
| #else |
| #include <endian.h> |
| #endif |
| /* 'endian.h' might have been included before 'Xarch.h' */ |
| #if !defined(LITTLE_ENDIAN) && defined(__LITTLE_ENDIAN) |
| #define LITTLE_ENDIAN __LITTLE_ENDIAN |
| #endif |
| #if !defined(BIG_ENDIAN) && defined(__BIG_ENDIAN) |
| #define BIG_ENDIAN __BIG_ENDIAN |
| #endif |
| #if !defined(PDP_ENDIAN) && defined(__PDP_ENDIAN) |
| #define PDP_ENDIAN __PDP_ENDIAN |
| #endif |
| #if !defined(BYTE_ORDER) && defined(__BYTE_ORDER) |
| #define BYTE_ORDER __BYTE_ORDER |
| #endif |
| #elif defined(Lynx) |
| #if 0 |
| /* LynxOS 2.4.0 has wrong defines in bsd/ip.h */ |
| #include <bsd/in.h> |
| #include <bsd/in_systm.h> |
| #include <bsd/ip.h> |
| #endif |
| #endif |
| |
| #ifndef BYTE_ORDER |
| #define LITTLE_ENDIAN 1234 |
| #define BIG_ENDIAN 4321 |
| |
| #if defined(__QNX__) && !defined(__QNXNTO__) |
| #define BYTE_ORDER LITTLE_ENDIAN |
| #endif |
| |
| #if defined(__QNXNTO__) |
| #if defined(i386) || defined(__i386__) || defined(__x86__) |
| #define BYTE_ORDER LITTLE_ENDIAN |
| #else |
| #define BYTE_ORDER BIG_ENDIAN |
| #endif |
| #endif |
| |
| #ifdef Lynx |
| #if defined(i386) || defined(__i386__) || defined(__x86__) |
| #define BYTE_ORDER LITTLE_ENDIAN |
| #else |
| #define BYTE_ORDER BIG_ENDIAN |
| #endif |
| #endif |
| #if (defined(sun) && defined(SVR4)) && !defined(Lynx) |
| #include <sys/isa_defs.h> |
| #ifdef _LITTLE_ENDIAN |
| #define BYTE_ORDER LITTLE_ENDIAN |
| #endif |
| #ifdef _BIG_ENDIAN |
| #define BYTE_ORDER BIG_ENDIAN |
| #endif |
| #endif /* sun */ |
| #endif /* BYTE_ORDER */ |
| |
| #define X_BYTE_ORDER BYTE_ORDER |
| #define X_BIG_ENDIAN BIG_ENDIAN |
| #define X_LITTLE_ENDIAN LITTLE_ENDIAN |
| |
| #endif /* not in imake config */ |
| |
| #endif /* _XARCH_H_ */ |