text: #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.10 2000/06/15 20:49:58 dawes 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)
  #include <sys/endian.h>
  #else
  #if !defined(sun) && !defined(__sgi)
  #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_ */
  