| /****************************************************************************** |
| * Filename: sw_ecrypt-config.h |
| * Revised: 2016-10-05 12:42:03 +0200 (Wed, 05 Oct 2016) |
| * Revision: 47308 |
| ******************************************************************************/ |
| /* ecrypt-config.h */ |
| |
| /* *** Normally, it should not be necessary to edit this file. *** */ |
| |
| #ifndef ECRYPT_CONFIG |
| #define ECRYPT_CONFIG |
| |
| /* ------------------------------------------------------------------------- */ |
| |
| /* Guess the endianness of the target architecture. */ |
| |
| /* |
| * The LITTLE endian machines: |
| */ |
| #if ( ! defined(ECRYPT_LITTLE_ENDIAN)) |
| #if defined(__ultrix) /* Older MIPS */ |
| #define ECRYPT_LITTLE_ENDIAN |
| #elif defined(__alpha) /* Alpha */ |
| #define ECRYPT_LITTLE_ENDIAN |
| #elif defined(i386) /* x86 (gcc) */ |
| #define ECRYPT_LITTLE_ENDIAN |
| #elif defined(__i386) /* x86 (gcc) */ |
| #define ECRYPT_LITTLE_ENDIAN |
| #elif defined(_M_IX86) /* x86 (MSC, Borland) */ |
| #define ECRYPT_LITTLE_ENDIAN |
| #elif defined(_MSC_VER) /* x86 (surely MSC) */ |
| #define ECRYPT_LITTLE_ENDIAN |
| #elif defined(__INTEL_COMPILER) /* x86 (surely Intel compiler icl.exe) */ |
| #define ECRYPT_LITTLE_ENDIAN |
| |
| /* |
| * The BIG endian machines: |
| */ |
| #elif defined(sun) /* Newer Sparc's */ |
| #define ECRYPT_BIG_ENDIAN |
| #elif defined(__ppc__) /* PowerPC */ |
| #define ECRYPT_BIG_ENDIAN |
| |
| /* |
| * Finally machines with UNKNOWN endianness: |
| */ |
| #elif defined (_AIX) /* RS6000 */ |
| #define ECRYPT_UNKNOWN |
| #elif defined(__hpux) /* HP-PA */ |
| #define ECRYPT_UNKNOWN |
| #elif defined(__aux) /* 68K */ |
| #define ECRYPT_UNKNOWN |
| #elif defined(__dgux) /* 88K (but P6 in latest boxes) */ |
| #define ECRYPT_UNKNOWN |
| #elif defined(__sgi) /* Newer MIPS */ |
| #define ECRYPT_UNKNOWN |
| #else /* Any other processor */ |
| #define ECRYPT_UNKNOWN |
| #endif |
| #endif |
| |
| /* ------------------------------------------------------------------------- */ |
| |
| /* |
| * Find minimal-width types to store 8-bit, 16-bit, 32-bit, and 64-bit |
| * integers. |
| * |
| * Note: to enable 64-bit types on 32-bit compilers, it might be |
| * necessary to switch from ISO C90 mode to ISO C99 mode (e.g., gcc |
| * -std=c99). |
| */ |
| |
| #include <limits.h> |
| |
| /* --- check char --- */ |
| |
| #if (UCHAR_MAX / 0xFU > 0xFU) |
| #ifndef I8T |
| #define I8T char |
| #define U8C(v) (v##U) |
| |
| #if (UCHAR_MAX == 0xFFU) |
| #define ECRYPT_I8T_IS_BYTE |
| #endif |
| |
| #endif |
| |
| #if (UCHAR_MAX / 0xFFU > 0xFFU) |
| #ifndef I16T |
| #define I16T char |
| #define U16C(v) (v##U) |
| #endif |
| |
| #if (UCHAR_MAX / 0xFFFFU > 0xFFFFU) |
| #ifndef I32T |
| #define I32T char |
| #define U32C(v) (v##U) |
| #endif |
| |
| #if (UCHAR_MAX / 0xFFFFFFFFU > 0xFFFFFFFFU) |
| #ifndef I64T |
| #define I64T char |
| #define U64C(v) (v##U) |
| #define ECRYPT_NATIVE64 |
| #endif |
| |
| #endif |
| #endif |
| #endif |
| #endif |
| |
| /* --- check short --- */ |
| |
| #if (USHRT_MAX / 0xFU > 0xFU) |
| #ifndef I8T |
| #define I8T short |
| #define U8C(v) (v##U) |
| |
| #if (USHRT_MAX == 0xFFU) |
| #define ECRYPT_I8T_IS_BYTE |
| #endif |
| |
| #endif |
| |
| #if (USHRT_MAX / 0xFFU > 0xFFU) |
| #ifndef I16T |
| #define I16T short |
| #define U16C(v) (v##U) |
| #endif |
| |
| #if (USHRT_MAX / 0xFFFFU > 0xFFFFU) |
| #ifndef I32T |
| #define I32T short |
| #define U32C(v) (v##U) |
| #endif |
| |
| #if (USHRT_MAX / 0xFFFFFFFFU > 0xFFFFFFFFU) |
| #ifndef I64T |
| #define I64T short |
| #define U64C(v) (v##U) |
| #define ECRYPT_NATIVE64 |
| #endif |
| |
| #endif |
| #endif |
| #endif |
| #endif |
| |
| /* --- check int --- */ |
| |
| #if (UINT_MAX / 0xFU > 0xFU) |
| #ifndef I8T |
| #define I8T int |
| #define U8C(v) (v##U) |
| |
| #if (ULONG_MAX == 0xFFU) |
| #define ECRYPT_I8T_IS_BYTE |
| #endif |
| |
| #endif |
| |
| #if (UINT_MAX / 0xFFU > 0xFFU) |
| #ifndef I16T |
| #define I16T int |
| #define U16C(v) (v##U) |
| #endif |
| |
| #if (UINT_MAX / 0xFFFFU > 0xFFFFU) |
| #ifndef I32T |
| #define I32T int |
| #define U32C(v) (v##U) |
| #endif |
| |
| #if (UINT_MAX / 0xFFFFFFFFU > 0xFFFFFFFFU) |
| #ifndef I64T |
| #define I64T int |
| #define U64C(v) (v##U) |
| #define ECRYPT_NATIVE64 |
| #endif |
| |
| #endif |
| #endif |
| #endif |
| #endif |
| |
| /* --- check long --- */ |
| |
| #if (ULONG_MAX / 0xFUL > 0xFUL) |
| #ifndef I8T |
| #define I8T long |
| #define U8C(v) (v##UL) |
| |
| #if (ULONG_MAX == 0xFFUL) |
| #define ECRYPT_I8T_IS_BYTE |
| #endif |
| |
| #endif |
| |
| #if (ULONG_MAX / 0xFFUL > 0xFFUL) |
| #ifndef I16T |
| #define I16T long |
| #define U16C(v) (v##UL) |
| #endif |
| |
| #if (ULONG_MAX / 0xFFFFUL > 0xFFFFUL) |
| #ifndef I32T |
| #define I32T long |
| #define U32C(v) (v##UL) |
| #endif |
| |
| #if (ULONG_MAX / 0xFFFFFFFFUL > 0xFFFFFFFFUL) |
| #ifndef I64T |
| #define I64T long |
| #define U64C(v) (v##UL) |
| #define ECRYPT_NATIVE64 |
| #endif |
| |
| #endif |
| #endif |
| #endif |
| #endif |
| |
| /* --- check long long --- */ |
| |
| #ifdef ULLONG_MAX |
| |
| #if (ULLONG_MAX / 0xFULL > 0xFULL) |
| #ifndef I8T |
| #define I8T long long |
| #define U8C(v) (v##ULL) |
| |
| #if (ULLONG_MAX == 0xFFULL) |
| #define ECRYPT_I8T_IS_BYTE |
| #endif |
| |
| #endif |
| |
| #if (ULLONG_MAX / 0xFFULL > 0xFFULL) |
| #ifndef I16T |
| #define I16T long long |
| #define U16C(v) (v##ULL) |
| #endif |
| |
| #if (ULLONG_MAX / 0xFFFFULL > 0xFFFFULL) |
| #ifndef I32T |
| #define I32T long long |
| #define U32C(v) (v##ULL) |
| #endif |
| |
| #if (ULLONG_MAX / 0xFFFFFFFFULL > 0xFFFFFFFFULL) |
| #ifndef I64T |
| #define I64T long long |
| #define U64C(v) (v##ULL) |
| #endif |
| |
| #endif |
| #endif |
| #endif |
| #endif |
| |
| #endif |
| |
| /* --- check __int64 --- */ |
| |
| #ifdef _UI64_MAX |
| |
| #if (_UI64_MAX / 0xFFFFFFFFui64 > 0xFFFFFFFFui64) |
| #ifndef I64T |
| #define I64T __int64 |
| #define U64C(v) (v##ui64) |
| #endif |
| |
| #endif |
| |
| #endif |
| |
| /* ------------------------------------------------------------------------- */ |
| |
| #endif |