--- truecrypt/common/endian.h 2018/04/24 16:46:30 1.1.1.10 +++ truecrypt/common/endian.h 2018/04/24 16:57:26 1.1.1.15 @@ -1,16 +1,22 @@ /* - Legal Notice: The source code contained in this file has been derived from - the source code of Encryption for the Masses 2.02a, which is Copyright (c) - Paul Le Roux and which is covered by the 'License Agreement for Encryption - for the Masses'. Modifications and additions to that source code contained - in this file are Copyright (c) TrueCrypt Foundation and are covered by the - TrueCrypt License 2.2 the full text of which is contained in the file - License.txt included in TrueCrypt binary and source code distribution + Legal Notice: Some portions of the source code contained in this file were + derived from the source code of Encryption for the Masses 2.02a, which is + 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.6 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 +#if defined(__cplusplus) +extern "C" +{ +#endif + #ifdef _WIN32 # ifndef LITTLE_ENDIAN @@ -22,41 +28,28 @@ #elif !defined(BYTE_ORDER) -# ifdef LINUX_DRIVER -# include - -# define LITTLE_ENDIAN 1234 -# define BIG_ENDIAN 4321 - -# ifdef __LITTLE_ENDIAN -# define BYTE_ORDER LITTLE_ENDIAN -# endif - -# 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 +# ifdef TC_MACOSX +# include +# elif defined (TC_BSD) +# include # 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 @@ -131,7 +124,13 @@ unsigned __int16 MirrorBytes16 (unsigned __int16 x); unsigned __int32 MirrorBytes32 (unsigned __int32 x); +#ifndef TC_NO_COMPILER_INT64 unsigned __int64 MirrorBytes64 (unsigned __int64 x); +#endif void LongReverse ( unsigned __int32 *buffer , unsigned byteCount ); +#if defined(__cplusplus) +} +#endif + #endif /* TC_ENDIAN_H */