* Copyright 2003-2008, Axel DΓΆrfler, axeld@pinc-software.de.
* Distributed under the terms of the MIT License.
*/
#ifndef BFS_ENDIAN_H
#define BFS_ENDIAN_H
#include "system_dependencies.h"
#if !defined(BFS_LITTLE_ENDIAN_ONLY) && !defined(BFS_BIG_ENDIAN_ONLY)
# define BFS_LITTLE_ENDIAN_ONLY
#endif
#if defined(BFS_LITTLE_ENDIAN_ONLY) && defined(BFS_BIG_ENDIAN_ONLY)
# error Building BFS with both big and little endian is not supported.
#endif
#if defined(BFS_LITTLE_ENDIAN_ONLY) && B_HOST_IS_LENDIAN \
|| defined(BFS_BIG_ENDIAN_ONLY) && B_HOST_IS_BENDIAN
# define BFS_NATIVE_ENDIAN
# define BFS_ENDIAN_TO_HOST_INT16(value) (value)
# define BFS_ENDIAN_TO_HOST_INT32(value) (value)
# define BFS_ENDIAN_TO_HOST_INT64(value) (value)
# define HOST_ENDIAN_TO_BFS_INT16(value) (value)
# define HOST_ENDIAN_TO_BFS_INT32(value) (value)
# define HOST_ENDIAN_TO_BFS_INT64(value) (value)
#elif defined(BFS_LITTLE_ENDIAN_ONLY) && B_HOST_IS_BENDIAN \
|| defined(BFS_BIG_ENDIAN_ONLY) && B_HOST_IS_LENDIAN
# define BFS_ENDIAN_TO_HOST_INT16(value) __swap_int16(value)
# define BFS_ENDIAN_TO_HOST_INT32(value) __swap_int32(value)
# define BFS_ENDIAN_TO_HOST_INT64(value) __swap_int64(value)
# define HOST_ENDIAN_TO_BFS_INT16(value) __swap_int16(value)
# define HOST_ENDIAN_TO_BFS_INT32(value) __swap_int32(value)
# define HOST_ENDIAN_TO_BFS_INT64(value) __swap_int64(value)
#else
#endif
#endif