1 /** 2 * This file has no copyright assigned and is placed in the Public Domain. 3 * This file is part of the mingw-w64 runtime package. 4 * No warranty is given; refer to the file DISCLAIMER.PD within this package. 5 */ 6 #ifndef _INC_RTCAPI 7 #define _INC_RTCAPI 8 9 #include <_mingw.h> 10 11 #pragma pack(push,_CRT_PACKING) 12 13 #define _RTCINTERNAL_DEPRECATED 14 15 #ifdef __cplusplus 16 extern "C" { 17 #endif 18 19 typedef enum _RTC_ErrorNumber { 20 _RTC_CHKSTK = 0,_RTC_CVRT_LOSS_INFO,_RTC_CORRUPT_STACK,_RTC_UNINIT_LOCAL_USE,_RTC_CORRUPTED_ALLOCA,_RTC_ILLEGAL 21 } _RTC_ErrorNumber; 22 23 #define _RTC_ERRTYPE_IGNORE -1 24 #define _RTC_ERRTYPE_ASK -2 25 26 #ifndef _WCHAR_T_DEFINED 27 #define _WCHAR_T_DEFINED 28 typedef unsigned short wchar_t; 29 #endif 30 31 typedef int (__cdecl *_RTC_error_fn)(int,const char *,int,const char *,const char *,...); 32 typedef int (__cdecl *_RTC_error_fnW)(int,const wchar_t *,int,const wchar_t *,const wchar_t *,...); 33 34 int __cdecl _RTC_NumErrors(void); 35 const char *__cdecl _RTC_GetErrDesc(_RTC_ErrorNumber _Errnum); 36 int __cdecl _RTC_SetErrorType(_RTC_ErrorNumber _Errnum,int _ErrType); 37 _RTC_error_fn __cdecl _RTC_SetErrorFunc(_RTC_error_fn); 38 _RTC_error_fnW __cdecl _RTC_SetErrorFuncW(_RTC_error_fnW); 39 void __cdecl _RTC_Initialize(void); 40 void __cdecl _RTC_Terminate(void); 41 _RTC_error_fn __cdecl _CRT_RTC_INIT(void *_Res0,void **_Res1,int _Res2,int _Res3,int _Res4); 42 _RTC_error_fnW __cdecl _CRT_RTC_INITW(void *_Res0,void **_Res1,int _Res2,int _Res3,int _Res4); 43 44 typedef struct _RTC_vardesc { 45 int addr; 46 int size; 47 char *name; 48 } _RTC_vardesc; 49 50 typedef struct _RTC_framedesc { 51 int varCount; 52 _RTC_vardesc *variables; 53 } _RTC_framedesc; 54 55 #pragma pack(push,1) 56 57 typedef struct _RTC_ALLOCA_NODE { 58 __int32 guard1; 59 struct _RTC_ALLOCA_NODE *next; 60 #if (defined(_X86_) && !defined(__x86_64)) 61 __int32 dummypad; 62 #endif 63 size_t allocaSize; 64 #if (defined(_X86_) && !defined(__x86_64)) 65 __int32 dummypad2; 66 #endif 67 __int32 guard2[3]; 68 } _RTC_ALLOCA_NODE; 69 #pragma pack(pop) 70 71 char __fastcall _RTC_Check_2_to_1(short _Src); 72 char __fastcall _RTC_Check_4_to_1(int _Src); 73 char __fastcall _RTC_Check_8_to_1(__int64 _Src); 74 short __fastcall _RTC_Check_4_to_2(int _Src); 75 short __fastcall _RTC_Check_8_to_2(__int64 _Src); 76 int __fastcall _RTC_Check_8_to_4(__int64 _Src); 77 78 #if (defined(_X86_) && !defined(__x86_64)) 79 void __cdecl _RTC_CheckEsp(); 80 #endif 81 void __fastcall _RTC_CheckStackVars(void *_Esp,_RTC_framedesc *_Fd); 82 void __fastcall _RTC_CheckStackVars2(void *_Esp,_RTC_framedesc *_Fd,_RTC_ALLOCA_NODE *_AllocaList); 83 void __fastcall _RTC_AllocaHelper(_RTC_ALLOCA_NODE *_PAllocaBase,size_t _CbSize,_RTC_ALLOCA_NODE **_PAllocaInfoList); 84 void __cdecl _RTC_UninitUse(const char *_Varname); 85 void __cdecl _RTC_Shutdown(void); 86 void __cdecl _RTC_InitBase(void); 87 #ifdef __cplusplus 88 void *_ReturnAddress(); 89 } 90 #endif 91 92 #pragma pack(pop) 93 #endif 94