forked from boostorg/detail
@@ -28,10 +28,12 @@
|
|||||||
#ifndef BOOST_DETAIL_ENDIAN_HPP
|
#ifndef BOOST_DETAIL_ENDIAN_HPP
|
||||||
#define BOOST_DETAIL_ENDIAN_HPP
|
#define BOOST_DETAIL_ENDIAN_HPP
|
||||||
|
|
||||||
|
//
|
||||||
|
// Special cases come first:
|
||||||
|
//
|
||||||
|
#if defined (__GLIBC__)
|
||||||
// GNU libc offers the helpful header <endian.h> which defines
|
// GNU libc offers the helpful header <endian.h> which defines
|
||||||
// __BYTE_ORDER
|
// __BYTE_ORDER
|
||||||
|
|
||||||
#if defined (__GLIBC__)
|
|
||||||
# include <endian.h>
|
# include <endian.h>
|
||||||
# if (__BYTE_ORDER == __LITTLE_ENDIAN)
|
# if (__BYTE_ORDER == __LITTLE_ENDIAN)
|
||||||
# define BOOST_LITTLE_ENDIAN
|
# define BOOST_LITTLE_ENDIAN
|
||||||
@@ -43,8 +45,11 @@
|
|||||||
# error Unknown machine endianness detected.
|
# error Unknown machine endianness detected.
|
||||||
# endif
|
# endif
|
||||||
# define BOOST_BYTE_ORDER __BYTE_ORDER
|
# define BOOST_BYTE_ORDER __BYTE_ORDER
|
||||||
|
|
||||||
#elif defined(__NetBSD__) || defined(__FreeBSD__) || \
|
#elif defined(__NetBSD__) || defined(__FreeBSD__) || \
|
||||||
defined(__OpenBSD__) || (__DragonFly__)
|
defined(__OpenBSD__) || (__DragonFly__)
|
||||||
|
//
|
||||||
|
// BSD has endian.h, see https://svn.boost.org/trac/boost/ticket/6013
|
||||||
# if defined(__OpenBSD__)
|
# if defined(__OpenBSD__)
|
||||||
# include <machine/endian.h>
|
# include <machine/endian.h>
|
||||||
# else
|
# else
|
||||||
@@ -60,6 +65,27 @@
|
|||||||
# error Unknown machine endianness detected.
|
# error Unknown machine endianness detected.
|
||||||
# endif
|
# endif
|
||||||
# define BOOST_BYTE_ORDER _BYTE_ORDER
|
# define BOOST_BYTE_ORDER _BYTE_ORDER
|
||||||
|
|
||||||
|
#elif defined( __ANDROID__ )
|
||||||
|
// Adroid specific code, see: https://svn.boost.org/trac/boost/ticket/7528
|
||||||
|
// Here we can use machine/_types.h, see:
|
||||||
|
// http://stackoverflow.com/questions/6212951/endianness-of-android-ndk
|
||||||
|
# include "machine/_types.h"
|
||||||
|
# ifdef __ARMEB__
|
||||||
|
# define BOOST_BIG_ENDIAN
|
||||||
|
# define BOOST_BYTE_ORDER 4321
|
||||||
|
# else
|
||||||
|
# define BOOST_LITTLE_ENDIAN
|
||||||
|
# define BOOST_BYTE_ORDER 1234
|
||||||
|
# endif // __ARMEB__
|
||||||
|
|
||||||
|
#elif defined( _XBOX )
|
||||||
|
//
|
||||||
|
// XBox is always big endian??
|
||||||
|
//
|
||||||
|
# define BOOST_BIG_ENDIAN
|
||||||
|
# define BOOST_BYTE_ORDER 4321
|
||||||
|
|
||||||
#elif defined(_BIG_ENDIAN) && !defined(_LITTLE_ENDIAN) || \
|
#elif defined(_BIG_ENDIAN) && !defined(_LITTLE_ENDIAN) || \
|
||||||
defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__) || \
|
defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__) || \
|
||||||
defined(_STLP_BIG_ENDIAN) && !defined(_STLP_LITTLE_ENDIAN)
|
defined(_STLP_BIG_ENDIAN) && !defined(_STLP_LITTLE_ENDIAN)
|
||||||
|
Reference in New Issue
Block a user