--- truecrypt/common/endian.h 2018/04/24 16:48:28 1.1.1.12 +++ truecrypt/common/endian.h 2018/04/24 17:02:20 1.1.1.17 @@ -4,14 +4,16 @@ Copyright (c) 1998-2000 Paul Le Roux and which is governed by the 'License Agreement for Encryption for the Masses'. Modifications and additions to the original source code (contained in this file) and all other portions of - this file are Copyright (c) 2003-2008 TrueCrypt Foundation and are governed - by the TrueCrypt License 2.4 the full text of which is contained in the + this file are Copyright (c) 2003-2009 TrueCrypt Foundation and are governed + by the TrueCrypt License 2.7 the full text of which is contained in the file License.txt included in TrueCrypt binary and source code distribution packages. */ #ifndef TC_ENDIAN_H #define TC_ENDIAN_H +#include "Common/Tcdefs.h" + #if defined(__cplusplus) extern "C" { @@ -28,47 +30,37 @@ extern "C" #elif !defined(BYTE_ORDER) -# ifdef LINUX_DRIVER -# include - +# ifdef TC_MACOSX +# include +# elif defined (TC_BSD) +# include +# elif defined (TC_SOLARIS) +# include # define LITTLE_ENDIAN 1234 # define BIG_ENDIAN 4321 - -# ifdef __LITTLE_ENDIAN -# define BYTE_ORDER LITTLE_ENDIAN -# endif - -# ifdef __BIG_ENDIAN +# ifdef _BIG_ENDIAN # define BYTE_ORDER BIG_ENDIAN -# endif - -# ifndef BYTE_ORDER -# error Byte order cannot be determined - kernel source not prepared for building of modules -# endif -# else -# ifdef TC_MACOSX -# include -# elif defined (TC_BSD) -# include # else -# include +# define BYTE_ORDER LITTLE_ENDIAN # endif +# else +# include +# endif -# ifndef BYTE_ORDER -# ifndef __BYTE_ORDER -# error Byte order cannot be determined (BYTE_ORDER undefined) -# endif - -# define BYTE_ORDER __BYTE_ORDER +# ifndef BYTE_ORDER +# ifndef __BYTE_ORDER +# error Byte order cannot be determined (BYTE_ORDER undefined) # endif -# ifndef LITTLE_ENDIAN -# define LITTLE_ENDIAN __LITTLE_ENDIAN -# endif +# define BYTE_ORDER __BYTE_ORDER +# endif -# ifndef BIG_ENDIAN -# define BIG_ENDIAN __BIG_ENDIAN -# endif +# ifndef LITTLE_ENDIAN +# define LITTLE_ENDIAN __LITTLE_ENDIAN +# endif + +# ifndef BIG_ENDIAN +# define BIG_ENDIAN __BIG_ENDIAN # endif #endif // !BYTE_ORDER @@ -144,7 +136,7 @@ extern "C" unsigned __int16 MirrorBytes16 (unsigned __int16 x); unsigned __int32 MirrorBytes32 (unsigned __int32 x); #ifndef TC_NO_COMPILER_INT64 -unsigned __int64 MirrorBytes64 (unsigned __int64 x); +uint64 MirrorBytes64 (uint64 x); #endif void LongReverse ( unsigned __int32 *buffer , unsigned byteCount );