1 #ifndef _XARCH_H_ 2 #define _XARCH_H_ 3 4 /* 5 * Copyright 1997 Metro Link Incorporated 6 * 7 * All Rights Reserved 8 * 9 * Permission to use, copy, modify, distribute, and sell this software and its 10 * documentation for any purpose is hereby granted without fee, provided that 11 * the above copyright notice appear in all copies and that both that 12 * copyright notice and this permission notice appear in supporting 13 * documentation, and that the names of the above listed copyright holder(s) 14 * not be used in advertising or publicity pertaining to distribution of 15 * the software without specific, written prior permission. The above listed 16 * copyright holder(s) make(s) no representations about the suitability of 17 * this software for any purpose. It is provided "as is" without express or 18 * implied warranty. 19 * 20 * THE ABOVE LISTED COPYRIGHT HOLDER(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD 21 * TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 22 * AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE 23 * LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY 24 * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER 25 * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING 26 * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 27 */ 28 /* $XFree86: xc/include/Xarch.h,v 1.10tsi Exp $ */ 29 30 31 /* 32 * Determine the machine's byte order. 33 */ 34 35 /* See if it is set in the imake config first */ 36 #ifdef X_BYTE_ORDER 37 38 #define X_BIG_ENDIAN 4321 39 #define X_LITTLE_ENDIAN 1234 40 41 #else 42 43 #ifdef SVR4 44 #if defined(NCR) || defined(Mips) || defined(__sgi) 45 #include <sys/endian.h> 46 #else 47 #if !defined(sun) 48 #include <sys/byteorder.h> 49 #endif 50 #endif 51 #elif defined(CSRG_BASED) 52 #if defined(__NetBSD__) || defined(__OpenBSD__) 53 #include <sys/types.h> 54 #endif 55 #include <machine/endian.h> 56 #elif defined(linux) 57 #if defined __STRICT_ANSI__ 58 #undef __STRICT_ANSI__ 59 #include <endian.h> 60 #define __STRICT_ANSI__ 61 #else 62 #include <endian.h> 63 #endif 64 /* 'endian.h' might have been included before 'Xarch.h' */ 65 #if !defined(LITTLE_ENDIAN) && defined(__LITTLE_ENDIAN) 66 #define LITTLE_ENDIAN __LITTLE_ENDIAN 67 #endif 68 #if !defined(BIG_ENDIAN) && defined(__BIG_ENDIAN) 69 #define BIG_ENDIAN __BIG_ENDIAN 70 #endif 71 #if !defined(PDP_ENDIAN) && defined(__PDP_ENDIAN) 72 #define PDP_ENDIAN __PDP_ENDIAN 73 #endif 74 #if !defined(BYTE_ORDER) && defined(__BYTE_ORDER) 75 #define BYTE_ORDER __BYTE_ORDER 76 #endif 77 #elif defined(Lynx) 78 #if 0 79 /* LynxOS 2.4.0 has wrong defines in bsd/ip.h */ 80 #include <bsd/in.h> 81 #include <bsd/in_systm.h> 82 #include <bsd/ip.h> 83 #endif 84 #endif 85 86 #ifndef BYTE_ORDER 87 #define LITTLE_ENDIAN 1234 88 #define BIG_ENDIAN 4321 89 90 #if defined(__QNX__) && !defined(__QNXNTO__) 91 #define BYTE_ORDER LITTLE_ENDIAN 92 #endif 93 94 #if defined(__QNXNTO__) 95 #if defined(i386) || defined(__i386__) || defined(__x86__) 96 #define BYTE_ORDER LITTLE_ENDIAN 97 #else 98 #define BYTE_ORDER BIG_ENDIAN 99 #endif 100 #endif 101 102 #ifdef Lynx 103 #if defined(i386) || defined(__i386__) || defined(__x86__) 104 #define BYTE_ORDER LITTLE_ENDIAN 105 #else 106 #define BYTE_ORDER BIG_ENDIAN 107 #endif 108 #endif 109 #if (defined(sun) && defined(SVR4)) && !defined(Lynx) 110 #include <sys/isa_defs.h> 111 #ifdef _LITTLE_ENDIAN 112 #define BYTE_ORDER LITTLE_ENDIAN 113 #endif 114 #ifdef _BIG_ENDIAN 115 #define BYTE_ORDER BIG_ENDIAN 116 #endif 117 #endif /* sun */ 118 #endif /* BYTE_ORDER */ 119 120 #define X_BYTE_ORDER BYTE_ORDER 121 #define X_BIG_ENDIAN BIG_ENDIAN 122 #define X_LITTLE_ENDIAN LITTLE_ENDIAN 123 124 #endif /* not in imake config */ 125 126 #endif /* _XARCH_H_ */ 127