comparison DEPENDENCIES/generic/include/boost/predef/other/endian.h @ 101:c530137014c0

Update Boost headers (1.58.0)
author Chris Cannam
date Mon, 07 Sep 2015 11:12:49 +0100
parents 2665513ce2d3
children
comparison
equal deleted inserted replaced
100:793467b5e61c 101:c530137014c0
1 /* 1 /*
2 Copyright Redshift Software, Inc. 2013 2 Copyright Rene Rivera 2013-2014
3 Distributed under the Boost Software License, Version 1.0. 3 Distributed under the Boost Software License, Version 1.0.
4 (See accompanying file LICENSE_1_0.txt or copy at 4 (See accompanying file LICENSE_1_0.txt or copy at
5 http://www.boost.org/LICENSE_1_0.txt) 5 http://www.boost.org/LICENSE_1_0.txt)
6 */ 6 */
7 7
11 #include <boost/predef/version_number.h> 11 #include <boost/predef/version_number.h>
12 #include <boost/predef/make.h> 12 #include <boost/predef/make.h>
13 #include <boost/predef/library/c/gnu.h> 13 #include <boost/predef/library/c/gnu.h>
14 #include <boost/predef/os/macos.h> 14 #include <boost/predef/os/macos.h>
15 #include <boost/predef/os/bsd.h> 15 #include <boost/predef/os/bsd.h>
16 #include <boost/predef/os/android.h>
16 17
17 /*` 18 /*`
18 [heading `BOOST_ENDIAN_*`] 19 [heading `BOOST_ENDIAN_*`]
19 20
20 Detection of endian memory ordering. There are four defined macros 21 Detection of endian memory ordering. There are four defined macros
51 /* GNU libc provides a header defining __BYTE_ORDER, or _BYTE_ORDER. 52 /* GNU libc provides a header defining __BYTE_ORDER, or _BYTE_ORDER.
52 * And some OSs provide some for of endian header also. 53 * And some OSs provide some for of endian header also.
53 */ 54 */
54 #if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \ 55 #if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \
55 !BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD 56 !BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD
56 # if BOOST_LIB_C_GNU 57 # if BOOST_LIB_C_GNU || BOOST_OS_ANDROID
57 # include <endian.h> 58 # include <endian.h>
58 # else 59 # else
59 # if BOOST_OS_MACOS 60 # if BOOST_OS_MACOS
60 # include <machine/endian.h> 61 # include <machine/endian.h>
61 # else 62 # else
67 # endif 68 # endif
68 # endif 69 # endif
69 # endif 70 # endif
70 # endif 71 # endif
71 # if defined(__BYTE_ORDER) 72 # if defined(__BYTE_ORDER)
72 # if (__BYTE_ORDER == __BIG_ENDIAN) 73 # if defined(__BIG_ENDIAN) && (__BYTE_ORDER == __BIG_ENDIAN)
73 # undef BOOST_ENDIAN_BIG_BYTE 74 # undef BOOST_ENDIAN_BIG_BYTE
74 # define BOOST_ENDIAN_BIG_BYTE BOOST_VERSION_NUMBER_AVAILABLE 75 # define BOOST_ENDIAN_BIG_BYTE BOOST_VERSION_NUMBER_AVAILABLE
75 # endif 76 # endif
76 # if (__BYTE_ORDER == __LITTLE_ENDIAN) 77 # if defined(__LITTLE_ENDIAN) && (__BYTE_ORDER == __LITTLE_ENDIAN)
77 # undef BOOST_ENDIAN_LITTLE_BYTE 78 # undef BOOST_ENDIAN_LITTLE_BYTE
78 # define BOOST_ENDIAN_LITTLE_BYTE BOOST_VERSION_NUMBER_AVAILABLE 79 # define BOOST_ENDIAN_LITTLE_BYTE BOOST_VERSION_NUMBER_AVAILABLE
79 # endif 80 # endif
80 # if (__BYTE_ORDER == __PDP_ENDIAN) 81 # if defined(__PDP_ENDIAN) && (__BYTE_ORDER == __PDP_ENDIAN)
81 # undef BOOST_ENDIAN_LITTLE_WORD 82 # undef BOOST_ENDIAN_LITTLE_WORD
82 # define BOOST_ENDIAN_LITTLE_WORD BOOST_VERSION_NUMBER_AVAILABLE 83 # define BOOST_ENDIAN_LITTLE_WORD BOOST_VERSION_NUMBER_AVAILABLE
83 # endif 84 # endif
84 # endif 85 # endif
85 # if !defined(__BYTE_ORDER) && defined(_BYTE_ORDER) 86 # if !defined(__BYTE_ORDER) && defined(_BYTE_ORDER)
86 # if (_BYTE_ORDER == _BIG_ENDIAN) 87 # if defined(_BIG_ENDIAN) && (_BYTE_ORDER == _BIG_ENDIAN)
87 # undef BOOST_ENDIAN_BIG_BYTE 88 # undef BOOST_ENDIAN_BIG_BYTE
88 # define BOOST_ENDIAN_BIG_BYTE BOOST_VERSION_NUMBER_AVAILABLE 89 # define BOOST_ENDIAN_BIG_BYTE BOOST_VERSION_NUMBER_AVAILABLE
89 # endif 90 # endif
90 # if (_BYTE_ORDER == _LITTLE_ENDIAN) 91 # if defined(_LITTLE_ENDIAN) && (_BYTE_ORDER == _LITTLE_ENDIAN)
91 # undef BOOST_ENDIAN_LITTLE_BYTE 92 # undef BOOST_ENDIAN_LITTLE_BYTE
92 # define BOOST_ENDIAN_LITTLE_BYTE BOOST_VERSION_NUMBER_AVAILABLE 93 # define BOOST_ENDIAN_LITTLE_BYTE BOOST_VERSION_NUMBER_AVAILABLE
93 # endif 94 # endif
94 # if (_BYTE_ORDER == _PDP_ENDIAN) 95 # if defined(_PDP_ENDIAN) && (_BYTE_ORDER == _PDP_ENDIAN)
95 # undef BOOST_ENDIAN_LITTLE_WORD 96 # undef BOOST_ENDIAN_LITTLE_WORD
96 # define BOOST_ENDIAN_LITTLE_WORD BOOST_VERSION_NUMBER_AVAILABLE 97 # define BOOST_ENDIAN_LITTLE_WORD BOOST_VERSION_NUMBER_AVAILABLE
97 # endif 98 # endif
98 # endif 99 # endif
99 #endif 100 #endif
100 101
101 /* Built-in byte-swpped big-endian macros. 102 /* Built-in byte-swpped big-endian macros.
102 */ 103 */
103 #if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \ 104 #if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \
104 !BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD 105 !BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD
105 # if !BOOST_ENDIAN_BIG_BYTE 106 # if (defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__)) || \
106 # if (defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__)) || \ 107 (defined(_BIG_ENDIAN) && !defined(_LITTLE_ENDIAN)) || \
107 defined(__ARMEB__) || \ 108 defined(__ARMEB__) || \
108 defined(__THUMBEB__) || \ 109 defined(__THUMBEB__) || \
109 defined(__AARCH64EB__) || \ 110 defined(__AARCH64EB__) || \
110 defined(_MIPSEB) || \ 111 defined(_MIPSEB) || \
111 defined(__MIPSEB) || \ 112 defined(__MIPSEB) || \
112 defined(__MIPSEB__) 113 defined(__MIPSEB__)
113 # undef BOOST_ENDIAN_BIG_BYTE 114 # undef BOOST_ENDIAN_BIG_BYTE
114 # define BOOST_ENDIAN_BIG_BYTE BOOST_VERSION_NUMBER_AVAILABLE 115 # define BOOST_ENDIAN_BIG_BYTE BOOST_VERSION_NUMBER_AVAILABLE
115 # endif
116 # endif 116 # endif
117 #endif 117 #endif
118 118
119 /* Built-in byte-swpped little-endian macros. 119 /* Built-in byte-swpped little-endian macros.
120 */ 120 */
121 #if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \ 121 #if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \
122 !BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD 122 !BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD
123 # if !BOOST_ENDIAN_LITTLE_BYTE 123 # if (defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__)) || \
124 # if (defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__)) || \ 124 (defined(_LITTLE_ENDIAN) && !defined(_BIG_ENDIAN)) || \
125 defined(__ARMEL__) || \ 125 defined(__ARMEL__) || \
126 defined(__THUMBEL__) || \ 126 defined(__THUMBEL__) || \
127 defined(__AARCH64EL__) || \ 127 defined(__AARCH64EL__) || \
128 defined(_MIPSEL) || \ 128 defined(_MIPSEL) || \
129 defined(__MIPSEL) || \ 129 defined(__MIPSEL) || \
130 defined(__MIPSEL__) 130 defined(__MIPSEL__)
131 # undef BOOST_ENDIAN_LITTLE_BYTE 131 # undef BOOST_ENDIAN_LITTLE_BYTE
132 # define BOOST_ENDIAN_LITTLE_BYTE BOOST_VERSION_NUMBER_AVAILABLE 132 # define BOOST_ENDIAN_LITTLE_BYTE BOOST_VERSION_NUMBER_AVAILABLE
133 # endif
134 # endif 133 # endif
135 #endif 134 #endif
136 135
137 /* Some architectures are strictly one endianess (as opposed 136 /* Some architectures are strictly one endianess (as opposed
138 * the current common bi-endianess). 137 * the current common bi-endianess).
140 #if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \ 139 #if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \
141 !BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD 140 !BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD
142 # include <boost/predef/architecture.h> 141 # include <boost/predef/architecture.h>
143 # if BOOST_ARCH_M68K || \ 142 # if BOOST_ARCH_M68K || \
144 BOOST_ARCH_PARISK || \ 143 BOOST_ARCH_PARISK || \
144 BOOST_ARCH_SPARC || \
145 BOOST_ARCH_SYS370 || \ 145 BOOST_ARCH_SYS370 || \
146 BOOST_ARCH_SYS390 || \ 146 BOOST_ARCH_SYS390 || \
147 BOOST_ARCH_Z 147 BOOST_ARCH_Z
148 # undef BOOST_ENDIAN_BIG_BYTE 148 # undef BOOST_ENDIAN_BIG_BYTE
149 # define BOOST_ENDIAN_BIG_BYTE BOOST_VERSION_NUMBER_AVAILABLE 149 # define BOOST_ENDIAN_BIG_BYTE BOOST_VERSION_NUMBER_AVAILABLE