forked from boostorg/predef
Add BSD specific includes. Add case for Windows on ARM CPUs. Add
compatibility header.
This commit is contained in:
@@ -57,7 +57,7 @@
|
|||||||
</table></div>
|
</table></div>
|
||||||
</div>
|
</div>
|
||||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||||
<td align="left"><p><small>Last revised: March 19, 2013 at 03:53:01 GMT</small></p></td>
|
<td align="left"><p><small>Last revised: March 20, 2013 at 04:42:44 GMT</small></p></td>
|
||||||
<td align="right"><div class="copyright-footer"></div></td>
|
<td align="right"><div class="copyright-footer"></div></td>
|
||||||
</tr></table>
|
</tr></table>
|
||||||
<hr>
|
<hr>
|
||||||
|
22
include/boost/predef/detail/endian_compat.h
Normal file
22
include/boost/predef/detail/endian_compat.h
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
/*
|
||||||
|
Copyright Redshift Software, Inc. 2013
|
||||||
|
Distributed under the Boost Software License, Version 1.0.
|
||||||
|
(See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef BOOST_PREDEF_DETAIL_ENDIAN_COMPAT_H
|
||||||
|
#define BOOST_PREDEF_DETAIL_ENDIAN_COMPAT_H
|
||||||
|
|
||||||
|
#include <boost/predef/endian.h>
|
||||||
|
|
||||||
|
#if BOOST_PREDEF_ENDIAN_BIG_BYTE
|
||||||
|
# define BOOST_BIG_ENDIAN
|
||||||
|
# define BOOST_BYTE_ORDER 4321
|
||||||
|
#endif
|
||||||
|
#if BOOST_PREDEF_ENDIAN_LITTLE_BYTE
|
||||||
|
# define BOOST_LITTLE_ENDIAN
|
||||||
|
# define BOOST_BYTE_ORDER 1234
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
@@ -11,6 +11,7 @@ http://www.boost.org/LICENSE_1_0.txt)
|
|||||||
#include <boost/predef/version_number.h>
|
#include <boost/predef/version_number.h>
|
||||||
#include <boost/predef/make.h>
|
#include <boost/predef/make.h>
|
||||||
#include <boost/predef/library/c/gnu.h>
|
#include <boost/predef/library/c/gnu.h>
|
||||||
|
#include <boost/predef/os/bsd.h>
|
||||||
|
|
||||||
/*`
|
/*`
|
||||||
[heading `BOOST_ENDIAN_*`]
|
[heading `BOOST_ENDIAN_*`]
|
||||||
@@ -52,6 +53,14 @@ information and acquired knowledge:
|
|||||||
!BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD
|
!BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD
|
||||||
# if BOOST_LIB_C_GNU
|
# if BOOST_LIB_C_GNU
|
||||||
# include <endian.h>
|
# include <endian.h>
|
||||||
|
# else
|
||||||
|
# if BOOST_OS_BSD
|
||||||
|
# if BOOST_OS_BSD_OPEN
|
||||||
|
# include <machine/endian.h>
|
||||||
|
# else
|
||||||
|
# include <sys/endian.h>
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
# endif
|
# endif
|
||||||
# if defined(__BYTE_ORDER)
|
# if defined(__BYTE_ORDER)
|
||||||
# if (__BYTE_ORDER == __BIG_ENDIAN)
|
# if (__BYTE_ORDER == __BIG_ENDIAN)
|
||||||
@@ -67,6 +76,20 @@ information and acquired knowledge:
|
|||||||
# define BOOST_ENDIAN_LITTLE_WORD BOOST_VERSION_NUMBER_AVAILABLE
|
# define BOOST_ENDIAN_LITTLE_WORD BOOST_VERSION_NUMBER_AVAILABLE
|
||||||
# endif
|
# endif
|
||||||
# endif
|
# endif
|
||||||
|
# if !defined(__BYTE_ORDER) && defined(_BYTE_ORDER)
|
||||||
|
# if (_BYTE_ORDER == _BIG_ENDIAN)
|
||||||
|
# undef BOOST_ENDIAN_BIG_BYTE
|
||||||
|
# define BOOST_ENDIAN_BIG_BYTE BOOST_VERSION_NUMBER_AVAILABLE
|
||||||
|
# endif
|
||||||
|
# if (_BYTE_ORDER == _LITTLE_ENDIAN)
|
||||||
|
# undef BOOST_ENDIAN_LITTLE_BYTE
|
||||||
|
# define BOOST_ENDIAN_LITTLE_BYTE BOOST_VERSION_NUMBER_AVAILABLE
|
||||||
|
# endif
|
||||||
|
# if (_BYTE_ORDER == _PDP_ENDIAN)
|
||||||
|
# undef BOOST_ENDIAN_LITTLE_WORD
|
||||||
|
# define BOOST_ENDIAN_LITTLE_WORD BOOST_VERSION_NUMBER_AVAILABLE
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Built-in byte-swpped big-endian macros.
|
/* Built-in byte-swpped big-endian macros.
|
||||||
@@ -74,7 +97,7 @@ information and acquired knowledge:
|
|||||||
#if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \
|
#if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \
|
||||||
!BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD
|
!BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD
|
||||||
# if !BOOST_ENDIAN_BIG_BYTE
|
# if !BOOST_ENDIAN_BIG_BYTE
|
||||||
# if defined(__BIG_ENDIAN__) || \
|
# if (defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__)) || \
|
||||||
defined(__ARMEB__) || \
|
defined(__ARMEB__) || \
|
||||||
defined(__THUMBEB__) || \
|
defined(__THUMBEB__) || \
|
||||||
defined(__AARCH64EB__) || \
|
defined(__AARCH64EB__) || \
|
||||||
@@ -92,7 +115,7 @@ information and acquired knowledge:
|
|||||||
#if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \
|
#if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \
|
||||||
!BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD
|
!BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD
|
||||||
# if !BOOST_ENDIAN_LITTLE_BYTE
|
# if !BOOST_ENDIAN_LITTLE_BYTE
|
||||||
# if defined(__LITTLE_ENDIAN__) || \
|
# if (defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__)) || \
|
||||||
defined(__ARMEL__) || \
|
defined(__ARMEL__) || \
|
||||||
defined(__THUMBEL__) || \
|
defined(__THUMBEL__) || \
|
||||||
defined(__AARCH64EL__) || \
|
defined(__AARCH64EL__) || \
|
||||||
@@ -127,6 +150,20 @@ information and acquired knowledge:
|
|||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Windows on ARM, if not otherwise detected/specified, is always
|
||||||
|
* byte-swaped little-endian.
|
||||||
|
*/
|
||||||
|
#if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \
|
||||||
|
!BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD
|
||||||
|
# if BOOST_ARCH_ARM
|
||||||
|
# include <boost/predef/os/windows.h>
|
||||||
|
# if BOOST_OS_WINDOWS
|
||||||
|
# undef BOOST_ENDIAN_LITTLE_BYTE
|
||||||
|
# define BOOST_ENDIAN_LITTLE_BYTE BOOST_VERSION_NUMBER_AVAILABLE
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#if BOOST_ENDIAN_BIG_BYTE
|
#if BOOST_ENDIAN_BIG_BYTE
|
||||||
# define BOOST_ENDIAN_BIG_BYTE_AVAILABLE
|
# define BOOST_ENDIAN_BIG_BYTE_AVAILABLE
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user