|
| #define | _INTSAFE_H_INCLUDED_ |
| |
| #define | SUCCEEDED(hr) (((HRESULT)(hr)) >= 0) |
| |
| #define | FAILED(hr) (((HRESULT)(hr)) < 0) |
| |
| #define | S_OK ((HRESULT)0L) |
| |
| #define | INTSAFE_RESULT HRESULT |
| |
| #define | INTSAFE_SUCCESS S_OK |
| |
| #define | INTSAFE_E_ARITHMETIC_OVERFLOW ((HRESULT)0x80070216L) |
| |
| #define | INTSAFE_NAME(name) name |
| |
| #define | _W64 |
| |
| #define | C_ASSERT(e) extern void __C_ASSERT__(int [(e)?1:-1]) |
| |
| #define | INT8_MIN (-128) |
| |
| #define | SHORT_MIN (-32768) |
| |
| #define | INT16_MIN (-32768) |
| |
| #define | INT_MIN (-2147483647 - 1) |
| |
| #define | INT32_MIN (-2147483647 - 1) |
| |
| #define | LONG_MIN (-2147483647L - 1) |
| |
| #define | LONGLONG_MIN (-9223372036854775807LL - 1) |
| |
| #define | LONG64_MIN (-9223372036854775807LL - 1) |
| |
| #define | INT64_MIN (-9223372036854775807LL - 1) |
| |
| #define | INT128_MIN (-170141183460469231731687303715884105727i128 - 1) |
| |
| #define | INT_PTR_MIN (-2147483647 - 1) |
| |
| #define | LONG_PTR_MIN (-2147483647L - 1) |
| |
| #define | PTRDIFF_T_MIN (-2147483647 - 1) |
| |
| #define | SSIZE_T_MIN (-2147483647L - 1) |
| |
| #define | INT8_MAX 127 |
| |
| #define | UINT8_MAX 0xff /* 255U */ |
| |
| #define | BYTE_MAX 0xff /* 255U */ |
| |
| #define | SHORT_MAX 32767 |
| |
| #define | INT16_MAX 32767 |
| |
| #define | USHORT_MAX 0xffff /* 65535U */ |
| |
| #define | UINT16_MAX 0xffff /* 65535U */ |
| |
| #define | WORD_MAX 0xffff /* 65535U */ |
| |
| #define | INT_MAX 2147483647 |
| |
| #define | INT32_MAX 2147483647 |
| |
| #define | UINT_MAX 0xffffffff |
| |
| #define | UINT32_MAX 0xffffffff /* 4294967295U */ |
| |
| #define | LONG_MAX 2147483647L |
| |
| #define | ULONG_MAX 0xffffffffUL |
| |
| #define | DWORD_MAX 0xffffffffUL |
| |
| #define | LONGLONG_MAX 9223372036854775807LL |
| |
| #define | LONG64_MAX 9223372036854775807LL |
| |
| #define | INT64_MAX 9223372036854775807LL |
| |
| #define | ULONGLONG_MAX 0xffffffffffffffffULL |
| |
| #define | DWORDLONG_MAX 0xffffffffffffffffULL |
| |
| #define | ULONG64_MAX 0xffffffffffffffffULL |
| |
| #define | DWORD64_MAX 0xffffffffffffffffULL |
| |
| #define | UINT64_MAX 0xffffffffffffffffULL /* 18446744073709551615ULL */ |
| |
| #define | INT128_MAX 170141183460469231731687303715884105727i128 |
| |
| #define | UINT128_MAX 0xffffffffffffffffffffffffffffffffui128 |
| |
| #define | INT_PTR_MAX 2147483647 |
| |
| #define | UINT_PTR_MAX 0xffffffff |
| |
| #define | LONG_PTR_MAX 2147483647L |
| |
| #define | ULONG_PTR_MAX 0xffffffffUL |
| |
| #define | DWORD_PTR_MAX 0xffffffffUL |
| |
| #define | PTRDIFF_T_MAX 2147483647 |
| |
| #define | SIZE_T_MAX 0xffffffff |
| |
| #define | SSIZE_T_MAX 2147483647L |
| |
| #define | _SIZE_T_MAX 0xffffffffUL |
| |
| #define | INT8_ERROR ((signed char)(-1)) |
| |
| #define | UINT8_ERROR ((unsigned char)0xff) |
| |
| #define | BYTE_ERROR ((unsigned char)0xff) |
| |
| #define | SHORT_ERROR ((short)(-1)) |
| |
| #define | INT16_ERROR ((short)(-1)) |
| |
| #define | USHORT_ERROR ((unsigned short)0xffff) |
| |
| #define | UINT16_ERROR ((unsigned short)0xffff) |
| |
| #define | WORD_ERROR ((unsigned short)0xffff) |
| |
| #define | INT_ERROR (-1) |
| |
| #define | INT32_ERROR (-1) |
| |
| #define | UINT_ERROR 0xffffffffU |
| |
| #define | UINT32_ERROR 0xffffffffU |
| |
| #define | LONG_ERROR (-1L) |
| |
| #define | ULONG_ERROR 0xffffffffUL |
| |
| #define | DWORD_ERROR 0xffffffffUL |
| |
| #define | LONGLONG_ERROR (-1LL) |
| |
| #define | LONG64_ERROR (-1LL) |
| |
| #define | INT64_ERROR (-1LL) |
| |
| #define | ULONGLONG_ERROR 0xffffffffffffffffULL |
| |
| #define | DWORDLONG_ERROR 0xffffffffffffffffULL |
| |
| #define | ULONG64_ERROR 0xffffffffffffffffULL |
| |
| #define | UINT64_ERROR 0xffffffffffffffffULL |
| |
| #define | INT_PTR_ERROR (-1) |
| |
| #define | UINT_PTR_ERROR 0xffffffffU |
| |
| #define | LONG_PTR_ERROR (-1L) |
| |
| #define | ULONG_PTR_ERROR 0xffffffffUL |
| |
| #define | DWORD_PTR_ERROR 0xffffffffUL |
| |
| #define | PTRDIFF_T_ERROR (-1) |
| |
| #define | SIZE_T_ERROR 0xffffffffU |
| |
| #define | SSIZE_T_ERROR (-1L) |
| |
| #define | _SIZE_T_ERROR 0xffffffffUL |
| |
| #define | _INTSAFE_CHAR CHAR |
| |
| #define | _INTSAFE_CHAR_ERROR ((signed char)(-1)) |
| |
| #define | _INTSAFE_CHAR_MIN ((signed char)(-128)) |
| |
| #define | _INTSAFE_CHAR_MAX ((signed char)127) |
| |
| #define | size_t_ERROR SIZE_T_ERROR |
| |
| #define | UCHAR_ERROR '\0' |
| |
| #define | CHAR_ERROR '\0' |
| |
| #define | UInt32x32To64(a, b) ((unsigned __int64)(unsigned int)(a)*(unsigned __int64)(unsigned int)(b)) |
| |
| #define | DEFINE_SAFE_CONVERT_UTOX(_Name, _TypeFrom, _TypeTo) |
| |
| #define | DEFINE_SAFE_CONVERT_STOU(_Name, _TypeFrom, _TypeTo) |
| |
| #define | DEFINE_SAFE_CONVERT_STOS(_Name, _TypeFrom, _TypeTo) |
| |
| #define | Int8ToByte Int8ToUInt8 |
| |
| #define | Int8ToUInt16 Int8ToUShort |
| |
| #define | Int8ToWord Int8ToUShort |
| |
| #define | Int8ToUInt32 Int8ToUInt |
| |
| #define | Int8ToDWord Int8ToULong |
| |
| #define | Int8ToDWordPtr Int8ToULongPtr |
| |
| #define | Int8ToDWordLong Int8ToULongLong |
| |
| #define | Int8ToULong64 Int8ToULongLong |
| |
| #define | Int8ToDWord64 Int8ToULongLong |
| |
| #define | Int8ToUInt64 Int8ToULongLong |
| |
| #define | Int8ToSizeT Int8ToUIntPtr |
| |
| #define | Int8ToSIZET Int8ToULongPtr |
| |
| #define | IntToSizeT IntToUIntPtr |
| |
| #define | IntToSIZET IntToULongPtr |
| |
| #define | ULongToSSIZET ULongToLongPtr |
| |
| #define | ULongToByte ULongToUInt8 |
| |
| #define | ULongLongToInt64 ULongLongToLongLong |
| |
| #define | ULongLongToLong64 ULongLongToLongLong |
| |
| #define | ULongLongToPtrdiffT ULongLongToIntPtr |
| |
| #define | ULongLongToSizeT ULongLongToUIntPtr |
| |
| #define | ULongLongToSSIZET ULongLongToLongPtr |
| |
| #define | ULongLongToSIZET ULongLongToULongPtr |
| |
| #define | SIZETToULong ULongPtrToULong |
| |
| #define | SSIZETToULongLong LongPtrToULongLong |
| |
| #define | SSIZETToULong LongPtrToULong |
| |
| #define | LongLongToSizeT LongLongToUIntPtr |
| |
| #define | LongLongToSSIZET LongLongToLongPtr |
| |
| #define | LongLongToSIZET LongLongToULongPtr |
| |
| #define | IntToUIntPtr IntToUInt |
| |
| #define | ULongLongToIntPtr ULongLongToInt |
| |
| #define | ULongLongToUIntPtr ULongLongToUInt |
| |
| #define | ULongLongToULongPtr ULongLongToULong |
| |
| #define | DEFINE_SAFE_ADD(_Name, _Type) |
| |
| #define | DEFINE_SAFE_SUB(_Name, _Type) |
| |
| #define | DEFINE_SAFE_MULT_U32(_Name, _Type, _Convert) |
| |
| #define | DEFINE_SAFE_MULT_U16(_Name, _Type, _Convert) |
| |
| #define | UInt16Add UShortAdd |
| |
| #define | WordAdd UShortAdd |
| |
| #define | UInt32Add UIntAdd |
| |
| #define | DWordAdd ULongAdd |
| |
| #define | DWordLongAdd ULongLongAdd |
| |
| #define | ULong64Add ULongLongAdd |
| |
| #define | DWord64Add ULongLongAdd |
| |
| #define | UInt64Add ULongLongAdd |
| |
| #define | UInt16Sub UShortSub |
| |
| #define | WordSub UShortSub |
| |
| #define | UInt32Sub UIntSub |
| |
| #define | DWordSub ULongSub |
| |
| #define | DWordLongSub ULongLongSub |
| |
| #define | ULong64Sub ULongLongSub |
| |
| #define | DWord64Sub ULongLongSub |
| |
| #define | UInt64Sub ULongLongSub |
| |
| #define | UInt16Mult UShortMult |
| |
| #define | WordMult UShortMult |
| |
Windows helper functions for integer overflow prevention.
Definition in file intsafe.h.