diff options
| author | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
|---|---|---|
| committer | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
| commit | 3bf9df6b2785fa6d951086978a3e66f49427166a (patch) | |
| tree | 2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /thirdparty/telemetry/include/radtypes.h | |
| download | archived-source-engine-2018-hl2-src-master.tar.xz archived-source-engine-2018-hl2-src-master.zip | |
Diffstat (limited to 'thirdparty/telemetry/include/radtypes.h')
| -rw-r--r-- | thirdparty/telemetry/include/radtypes.h | 693 |
1 files changed, 693 insertions, 0 deletions
diff --git a/thirdparty/telemetry/include/radtypes.h b/thirdparty/telemetry/include/radtypes.h new file mode 100644 index 0000000..c3eae3c --- /dev/null +++ b/thirdparty/telemetry/include/radtypes.h @@ -0,0 +1,693 @@ +/// ======================================================================== +// (C) Copyright 1994- 2014 RAD Game Tools, Inc. Global types header file +// ======================================================================== + +#if !defined(__RADTYPESH__) && !defined(__RADRR_COREH__) +#define __RADTYPESH__ +#define __RADRR_COREH__ // block old rr_core + +#define RADCOPYRIGHT "Copyright (C) 1994-2014, RAD Game Tools, Inc." + +#if !defined(__RADRES__) // don't include anything for resource compiles + +// __RAD32__ means at least 32 bit code (always defined) +// __RAD64__ means 64 bit code (64-bit OSes only) + +// __RADNT__ means Win32 and Win64 desktop +// __RADWINRT__ means Windows Store/Phone App (x86, x64, arm) +// __RADWIN__ means win32, win64, windows store/phone, xenon, durango +// __RADWINRTAPI__ means Windows RT API (Win Store, Win Phone, Durango) +// __RADMAC__ means MacOS (32 or 64-bit) +// __RADXENON__ means the Xbox360 console +// __RADXBOXONE__ means Xbox One +// __RADWIIU__ means the Nintendo Wii U +// __RAD3DS__ means the Nintendo 3DS +// __RADPS3__ means the Sony PlayStation 3 +// __RADPS4__ means the Sony PlayStation 4 +// __RADANDROID__ means Android NDK +// __RADNACL__ means Native Client SDK +// __RADLINUX__ means Linux (32 or 64-bit) +// __RADPSP2__ means PS Vita +// __RADQNX__ means QNX +// __RADIPHONE__ means iphone + +// __RADARM__ means arm +// __RADPPC__ means powerpc +// __RADX86__ means x86 or x64 +// __RADX64__ means x64 +// __RADX64__ means x64 + +// __RADNOVARARGMACROS__ means #defines can't use ... + +// RADDEFSTART is "extern "C" {" on C++, nothing on C +// RADDEFEND is "}" on C++, nothing on C + +// RADEXPFUNC and RADEXPLINK are used on both the declaration +// and definition of exported functions. +// RADEXPFUNC int RADEXPLINK exported_func() + +// RADDEFFUNC and RADLINK are used on both the declaration +// and definition of public functions (but not exported). +// RADDEFFUNC int RADLINK public_c_func() + +// RADRESTRICT is for non-aliasing pointers/ + +// RADSTRUCT is defined as "struct" on msvc, and +// "struct __attribute__((__packed__))" on gcc/clang +// Used to sort of address generic structure packing +// (we still require #pragma packs to fix the +// packing on windows, though) + + +// ======================================================== +// First off, we detect your platform + +#if defined(ANDROID) + #define __RADANDROID__ 1 + #define __RADDETECTED__ __RADANDROID__ +#endif + +#if defined(__QNX__) + #define __RADQNX__ 2 + #define __RADDETECTED__ __RADQNX__ +#endif + +#if defined(__linux__) && !defined(ANDROID) + #define __RADLINUX__ 3 + #define __RADDETECTED__ __RADLINUX__ +#endif + +#if defined(__native_client__) + #define __RADNACL__ 4 + #define __RADDETECTED__ __RADNACL__ +#endif + +#if defined(_DURANGO) || defined(_SEKRIT) || defined(_SEKRIT1) || defined(_XBOX_ONE) + #define __RADXBOXONE__ 5 + #define __RADDETECTED__ __RADXBOXONE__ +#endif + +#if defined(__ORBIS__) + #define __RADPS4__ 6 + #define __RADDETECTED__ __RADPS4__ +#endif + +#if defined(CAFE) + #define __RADWIIU__ 7 + #define __RADDETECTED__ __RADWIIU__ +#endif + +#if defined(NN_PLATFORM_CTR) + #define __RAD3DS__ 8 + #define __RADDETECTED__ __RAD3DS__ +#endif + +#if defined(__psp2__) + #define __RADPSP2__ 9 + #define __RADDETECTED__ __RADPSP2__ +#endif + +#if defined(__CELLOS_LV2__) + #ifdef __SPU__ + #define __RADSPU__ 10 + #define __RADDETECTED__ __RADSPU__ + #else + #define __RADPS3__ 11 + #define __RADDETECTED__ __RADPS3__ + #endif +#endif + +#if defined(_XENON) || ( defined(_XBOX_VER) && (_XBOX_VER == 200) ) + #define __RADXENON__ 12 + #define __RADDETECTED__ __RADXENON__ +#endif + +#if !defined(__RADXENON__) && !defined(__RADXBOXONE__) &&( defined(_Windows) || defined(WIN32) || defined(__WINDOWS__) || defined(_WIN32) || defined(_WIN64) || defined(WINAPI_FAMILY) ) + + #ifdef WINAPI_FAMILY + // If this is #defined, we might be in a Windows Store App. But + // VC++ by default #defines this to a symbolic name, not an integer + // value, and those names are defined in "winapifamily.h". So if + // WINAPI_FAMILY is #defined, #include the header so we can parse it. + #include <winapifamily.h> + #define RAD_WINAPI_IS_APP (!WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)) + #if RAD_WINAPI_IS_APP + #define __RADWINRTAPI__ + #define __RADWINRT__ 13 + #define __RADDETECTED__ __RADWINRT__ + #endif + #else + #define RAD_WINAPI_IS_APP 0 + #endif + + #ifndef __RADWINRT__ + // if we aren't WinRT, then we are plain old NT + #define __RADNT__ 14 + #define __RADDETECTED__ __RADNT__ + #endif +#endif + +#if defined(__APPLE__) + #include "TargetConditionals.h" + #if defined(TARGET_IPHONE_SIMULATOR) && TARGET_IPHONE_SIMULATOR + #define __RADIPHONE__ 15 + #define __RADIPHONESIM__ 16 + #define __RADDETECTED__ __RADIPHONESIM__ + #elif defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE + #define __RADIPHONE__ 15 + #define __RADDETECTED__ __RADIPHONE__ + #else + #define __RADMAC__ 17 + #define __RADDETECTED__ __RADMAC__ + #endif +#endif + +#if !defined(__RADDETECTED__) + #error "radtypes.h did not detect your platform." +#endif + +// ======================================================== +// Now detect some architexture stuff + +#define __RAD32__ // we have no non-at-least-32-bit cpus any more + +#if defined(__arm__) || defined( _M_ARM ) + #define __RADARM__ 1 + #define __RADDETECTEDPROC__ __RADARM__ + #define __RADLITTLEENDIAN__ +#endif +#if defined(__i386) || defined( __i386__ ) || defined( _M_IX86 ) || defined( _X86_ ) + #define __RADX86__ 2 + #if !defined __RADIPHONESIM__ + // only use mmx on PC, Win, Linux - not iphone sim! + #define __RADMMX__ + #endif + #define __RADDETECTEDPROC__ __RADX86__ + #define __RADLITTLEENDIAN__ +#endif +#if defined(_x86_64) || defined( __x86_64__ ) || defined( _M_X64 ) || defined( _M_AMD64 ) + #define __RADX86__ 2 + #define __RADX64__ 3 + #define __RADMMX__ + #define __RADDETECTEDPROC__ __RADX64__ + #define __RADLITTLEENDIAN__ +#endif +#if defined(__powerpc) || defined( _M_PPC ) || defined( CAFE ) || defined( _XENON ) || (defined( __CELLOS_LV2__ ) && !defined( __SPU__ )) + #define __RADPPC__ 4 + #if !defined( CAFE ) + #define __RADALTIVEC__ + #endif + #define __RADDETECTEDPROC__ __RADPPC__ + #define __RADBIGENDIAN__ +#endif +#if defined( __CELLOS_LV2__ ) && defined( __SPU__ ) + #define __RADCELLSPU__ 5 + #define __RADDETECTEDPROC__ __RADCELLSPU__ + #define __RADBIGENDIAN__ +#endif + +#if !defined(__RADDETECTEDPROC__) + #error "radtypes.h did not detect your processor type." +#endif + +#if defined(__ppc64__) || defined(__aarch64__) || defined(_M_X64) || defined(__x86_64__) || defined(__x86_64) + #define __RAD64__ + #define __RAD64REGS__ // need to set this for platforms that aren't 64-bit, but have 64-bit regs (xenon, ps3) +#endif + + +// ======================================================== +// C++ name demangaling nonsense + +#ifdef __cplusplus + #define RADDEFFUNC extern "C" + #define RADDEFSTART extern "C" { + #define RADDEFEND } + #define RADDEFAULT( val ) =val +#else + #define RADDEFFUNC + #define RADDEFSTART + #define RADDEFEND + #define RADDEFAULT( val ) +#endif + +// ======================================================== +// handle exported function declarations: +// in anything with __RADNOEXPORTS__, RADEXPFUNC == nothing (turn off exports with this flag) +// in DLL, RADEXPFUNC == DLL export +// in EXE, RADEXPFUNC == DLL import +// in EXE with RADNOEXEEXPORTS, RADEXPFUNC == nothing (turn off imports in EXE with this flag) +// in static lib, RADEXPFUNC == nothing +#if ( defined(__RADINSTATICLIB__) || defined(__RADNOEXPORTS__ ) || ( defined(__RADNOEXEEXPORTS__) && ( !defined(__RADINDLL__) ) && ( !defined(__RADINSTATICLIB__) ) ) ) + // if we are in a static lib, or exports are off, or if we are in an EXE we asked for no exe exports (or imports) + // then EXPFUNC is just a normal function + #define RADEXPFUNC RADDEFFUNC +#else + // otherwise, we use imprt or export base on the build flag __RADINDLL__ + #if defined(__RADINDLL__) + #define RADEXPFUNC RADDEFFUNC RADDLLEXPORTDLL + #else + #define RADEXPFUNC RADDEFFUNC RADDLLIMPORTDLL + #endif +#endif + +#if defined(__RADANDROID__) + #define RADRESTRICT __restrict + #define RADSTRUCT struct __attribute__((__packed__)) + + #define RADLINK + #define RADEXPLINK + #define RADDLLEXPORTDLL + #define RADDLLIMPORTDLL +#endif + +#if defined(__RADQNX__) + #define RADRESTRICT __restrict + #define RADSTRUCT struct __attribute__((__packed__)) + + #define RADLINK + #define RADEXPLINK RADLINK + #define RADDLLEXPORTDLL + #define RADDLLIMPORTDLL +#endif + +#if defined(__RADLINUX__) + #define RADRESTRICT __restrict + #define RADSTRUCT struct __attribute__((__packed__)) + + #if defined(__RADX86__) && !defined(__RADX64__) + #define RADLINK __attribute__((cdecl)) + #define RADEXPLINK __attribute__((cdecl)) + #else + #define RADLINK + #define RADEXPLINK + #endif + // for linux, we assume you are building with hidden visibility, + // so for RADEXPFUNC, we turn the vis back on... + #define RADDLLEXPORTDLL __attribute__((visibility("default"))) + #define RADDLLIMPORTDLL +#endif + +#if defined(__RADNACL__) + #define RADRESTRICT __restrict + #define RADSTRUCT struct __attribute__((__packed__)) + + #define RADLINK + #define RADEXPLINK + #define RADDLLEXPORTDLL + #define RADDLLIMPORTDLL +#endif + +#if defined(__RADXBOXONE__) + #define __RADDURANGO__ + #define __RADWIN__ + #define __RADSEKRIT__ + + #define __RADWIN__ + #define RADRESTRICT __restrict + #define RADSTRUCT struct + #define __RADWINRTAPI__ + + #define RADLINK __stdcall + #define RADEXPLINK __stdcall + #define RADDLLEXPORTDLL // we don't use dlls on xbox + #define RADDLLIMPORTDLL +#endif + +#if defined(__RADPS4__) + #define __RADSEKRIT2__ + #define RADRESTRICT __restrict + #define RADSTRUCT struct __attribute__((__packed__)) + + #define RADLINK + #define RADEXPLINK + #define RADDLLEXPORTDLL + #define RADDLLIMPORTDLL +#endif + +#if defined(__RADNT__) + #define __RADWIN__ + #if _MSC_VER >= 1400 + #define RADRESTRICT __restrict + #else + // vc6 and older + #define RADRESTRICT + #define __RADNOVARARGMACROS__ + #endif + #define RADSTRUCT struct + + #define RADLINK __stdcall + #define RADEXPLINK __stdcall + + #define RADDLLEXPORTDLL __declspec(dllexport) + #ifdef __RADX32__ + // on weird NT DLLs built to run on Linux and Mac, no imports + #define RADDLLIMPORTDLL + #else + // normal win32 dll import + #define RADDLLIMPORTDLL __declspec(dllimport) + #endif +#endif + +#if defined(__RADWINRT__) + #define __RADWIN__ + #define RADRESTRICT __restrict + #define RADSTRUCT struct + + #define RADLINK __stdcall + #define RADEXPLINK __stdcall + #define RADDLLEXPORTDLL __declspec(dllexport) + #define RADDLLIMPORTDLL __declspec(dllimport) +#endif + +#if defined(__RADWIIU__) + #define RADRESTRICT __restrict + #define RADSTRUCT struct __attribute__((__packed__)) + + #define RADLINK + #define RADEXPLINK + #define RADDLLEXPORTDLL + #define RADDLLIMPORTDLL +#endif + +#if defined(__RAD3DS__) + #define RADRESTRICT + #define RADSTRUCT struct __attribute__((__packed__)) + + #define RADLINK + #define RADEXPLINK + #define RADDLLEXPORTDLL + #define RADDLLIMPORTDLL +#endif + +#if defined(__RADPSP2__) + #define RADRESTRICT __restrict + #define RADSTRUCT struct __attribute__((__packed__)) + + #define RADLINK + #define RADEXPLINK + #define RADDLLEXPORTDLL + #define RADDLLIMPORTDLL +#endif + +#if defined(__RADPS3__) + #define __RAD64REGS__ + #define __RADCELL__ + #define RADRESTRICT __restrict + #define RADSTRUCT struct __attribute__((__packed__)) + + #define RADLINK + #define RADEXPLINK + #define RADDLLEXPORTDLL + #define RADDLLIMPORTDLL +#endif + +#if defined(__RADSPU__) + #define __RADCELL__ + #define RADRESTRICT __restrict + #define RADSTRUCT struct __attribute__((__packed__)) + + #define RADLINK + #define RADEXPLINK + #define RADDLLEXPORTDLL + #define RADDLLIMPORTDLL +#endif + +#if defined(__RADIPHONE__) + #define __RADMACAPI__ + #define RADRESTRICT __restrict + #define RADSTRUCT struct __attribute__((__packed__)) + + #define RADLINK + #define RADEXPLINK + #define RADDLLEXPORTDLL + #define RADDLLIMPORTDLL +#endif + +#if defined(__RADMAC__) + #define __RADMACH__ + #define __RADMACAPI__ + #define RADRESTRICT __restrict + #define RADSTRUCT struct __attribute__((__packed__)) + + #define RADLINK + #define RADEXPLINK + // for mac, we assume you are building with hidden visibility, + // so for RADEXPFUNC, we turn the vis back on... + #define RADDLLEXPORTDLL __attribute__((visibility("default"))) + #define RADDLLIMPORTDLL + + #ifdef TARGET_API_MAC_CARBON + #if TARGET_API_MAC_CARBON + #ifndef __RADCARBON__ + #define __RADCARBON__ + #endif + #endif + #endif +#endif + +#if defined(__RADXENON__) + #define __RAD64REGS__ + #define __RADWIN__ + #define RADRESTRICT __restrict + #define RADSTRUCT struct + + #define RADLINK __stdcall + #define RADEXPLINK __stdcall + #define RADDLLEXPORTDLL // we don't use dlls on xbox + #define RADDLLIMPORTDLL +#endif + +#ifndef RADLINK + #error RADLINK was not defined. +#endif + +#ifdef _MSC_VER + #define RADINLINE __inline +#else + #define RADINLINE inline +#endif + +//=========================================================================== +// RR_STRING_JOIN joins strings in the preprocessor and works with LINESTRING +#define RR_STRING_JOIN(arg1, arg2) RR_STRING_JOIN_DELAY(arg1, arg2) +#define RR_STRING_JOIN_DELAY(arg1, arg2) RR_STRING_JOIN_IMMEDIATE(arg1, arg2) +#define RR_STRING_JOIN_IMMEDIATE(arg1, arg2) arg1 ## arg2 + +//=========================================================================== +// RR_NUMBERNAME is a macro to make a name unique, so that you can use it to declare +// variable names and they won't conflict with each other +// using __LINE__ is broken in MSVC with /ZI , but __COUNTER__ is an MSVC extension that works + +#ifdef _MSC_VER + #define RR_NUMBERNAME(name) RR_STRING_JOIN(name,__COUNTER__) +#else + #define RR_NUMBERNAME(name) RR_STRING_JOIN(name,__LINE__) +#endif + +//=================================================================== +// simple compiler assert +// this happens at declaration time, so if it's inside a function in a C file, drop {} around it +#ifndef RR_COMPILER_ASSERT + #define RR_COMPILER_ASSERT(exp) typedef char RR_NUMBERNAME(_dummy_array) [ (exp) ? 1 : -1 ] +#endif + + +//=========================================== +// first, we set defines for each of the types + +#define RAD_S8 signed char +#define RAD_U8 unsigned char +#define RAD_U16 unsigned short +#define RAD_S16 signed short + +#if defined(__RAD64__) + #define RAD_U32 unsigned int + #define RAD_S32 signed int + + // pointers are 64 bits. + #if (_MSC_VER >= 1300 && defined(_Wp64) && _Wp64 ) + #define RAD_SINTa __w64 signed __int64 + #define RAD_UINTa __w64 unsigned __int64 + #else + // non-vc.net compiler or /Wp64 turned off + #define RAD_UINTa unsigned long long + #define RAD_SINTa signed long long + #endif +#endif + +#if defined(__RAD32__) && !defined(__RAD64__) + #define RAD_U32 unsigned int + #define RAD_S32 signed int + + #if ( ( defined(_MSC_VER) && (_MSC_VER >= 1300 ) ) && ( defined(_Wp64) && ( _Wp64 ) ) ) + #define RAD_SINTa __w64 signed long + #define RAD_UINTa __w64 unsigned long + #else + // non-vc.net compiler or /Wp64 turned off + #ifdef _Wp64 + #define RAD_SINTa signed long + #define RAD_UINTa unsigned long + #else + #define RAD_SINTa signed int + #define RAD_UINTa unsigned int + #endif + #endif +#endif + +#define RAD_F32 float +#define RAD_F64 double + +#if defined(_MSC_VER) + #define RAD_U64 unsigned __int64 + #define RAD_S64 signed __int64 +#else + #define RAD_U64 unsigned long long + #define RAD_S64 signed long long +#endif + + +//================================================================ +// Then, we either typedef or define them based on switch settings + +#if !defined(RADNOTYPEDEFS) // this define will turn off typedefs + + #ifndef S8_DEFINED + #define S8_DEFINED + typedef RAD_S8 S8; + #endif + + #ifndef U8_DEFINED + #define U8_DEFINED + typedef RAD_U8 U8; + #endif + + #ifndef S16_DEFINED + #define S16_DEFINED + typedef RAD_S16 S16; + #endif + + #ifndef U16_DEFINED + #define U16_DEFINED + typedef RAD_U16 U16; + #endif + + #ifndef S32_DEFINED + #define S32_DEFINED + typedef RAD_S32 S32; + #endif + + #ifndef U32_DEFINED + #define U32_DEFINED + typedef RAD_U32 U32; + #endif + + #ifndef S64_DEFINED + #define S64_DEFINED + typedef RAD_S64 S64; + #endif + + #ifndef U64_DEFINED + #define U64_DEFINED + typedef RAD_U64 U64; + #endif + + #ifndef F32_DEFINED + #define F32_DEFINED + typedef RAD_F32 F32; + #endif + + #ifndef F64_DEFINED + #define F64_DEFINED + typedef RAD_F64 F64; + #endif + + #ifndef SINTa_DEFINED + #define SINTa_DEFINED + typedef RAD_SINTa SINTa; + #endif + + #ifndef UINTa_DEFINED + #define UINTa_DEFINED + typedef RAD_UINTa UINTa; + #endif + + #ifndef RRBOOL_DEFINED + #define RRBOOL_DEFINED + typedef S32 rrbool; + typedef S32 RRBOOL; + #endif + +#elif !defined(RADNOTYPEDEFINES) // this define will turn off type defines + + #ifndef S8_DEFINED + #define S8_DEFINED + #define S8 RAD_S8 + #endif + + #ifndef U8_DEFINED + #define U8_DEFINED + #define U8 RAD_U8 + #endif + + #ifndef S16_DEFINED + #define S16_DEFINED + #define S16 RAD_S16 + #endif + + #ifndef U16_DEFINED + #define U16_DEFINED + #define U16 RAD_U16 + #endif + + #ifndef S32_DEFINED + #define S32_DEFINED + #define S32 RAD_S32 + #endif + + #ifndef U32_DEFINED + #define U32_DEFINED + #define U32 RAD_U32 + #endif + + #ifndef S64_DEFINED + #define S64_DEFINED + #define S64 RAD_S64 + #endif + + #ifndef U64_DEFINED + #define U64_DEFINED + #define U64 RAD_U64 + #endif + + #ifndef F32_DEFINED + #define F32_DEFINED + #define F32 RAD_F32 + #endif + + #ifndef F64_DEFINED + #define F64_DEFINED + #define F64 RAD_F64 + #endif + + #ifndef SINTa_DEFINED + #define SINTa_DEFINED + #define SINTa RAD_SINTa + #endif + + #ifndef UINTa_DEFINED + #define UINTa_DEFINED + #define UINTa RAD_UINTa + #endif + + #ifndef RRBOOL_DEFINED + #define RRBOOL_DEFINED + #define rrbool S32 + #define RRBOOL S32 + #endif + +#endif + +#endif // __RADRES__ + +#endif // __RADTYPESH__ |