Xarch.h
上传用户:lctgjx
上传日期:2022-06-04
资源大小:8887k
文件大小:3k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

Visual C++

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