X-Git-Url: https://sfsrealm.hopto.org/projects/?a=blobdiff_plain;f=SFTypes.h;h=f58bfbab8ecfa8c3665f58bc20bcc323b7546a7d;hb=a36705ea24b6ce9c6df1e070176014e9fb2394ca;hp=ec40e07c7cf2aa2baead689a46e7b1cb584b8736;hpb=7214af3eb69acdaef221c1846157ed07438bd0c1;p=SFmpqapi.git diff --git a/SFTypes.h b/SFTypes.h index ec40e07..f58bfba 100644 --- a/SFTypes.h +++ b/SFTypes.h @@ -3,16 +3,48 @@ #ifndef SFTYPES_INCLUDED #define SFTYPES_INCLUDED +#if defined(_WIN32) || defined(_WIN64) + typedef signed char Int8; typedef signed short Int16; typedef signed long Int32; typedef signed __int64 Int64; +#ifdef _WIN64 +typedef signed __int64 IntPtr; +#else +typedef signed int IntPtr; +#endif + typedef unsigned char UInt8; typedef unsigned short UInt16; typedef unsigned long UInt32; typedef unsigned __int64 UInt64; +#ifdef _WIN64 +typedef unsigned __int64 UIntPtr; +#else +typedef unsigned int UIntPtr; +#endif + +#else + +#include + +typedef int8_t Int8; +typedef int16_t Int16; +typedef int32_t Int32; +typedef int64_t Int64; +typedef intptr_t IntPtr; + +typedef uint8_t UInt8; +typedef uint16_t UInt16; +typedef uint32_t UInt32; +typedef uint64_t UInt64; +typedef uintptr_t UIntPtr; + +#endif + union IntConv { Int8 i8[8]; UInt8 ui8[8]; @@ -24,5 +56,11 @@ union IntConv { UInt64 ui64; }; +#define SplitUInt64(L_Low, L_High, R) \ + L_Low = (UInt32)(R); \ + L_High = (UInt32)((R) >> 32); + +#define MakeUInt64(R_Low, R_High) ((UInt64)(R_Low) + (UInt64)((R_High) << 32)) + #endif // #ifndef SFTYPES_INCLUDED