xref: /reactos/sdk/include/vcruntime/rtcapi.h (revision abbc7840)
1 /**
2  * This file has no copyright assigned and is placed in the Public Domain.
3  * This file is part of the w64 mingw-runtime package.
4  * No warranty is given; refer to the file DISCLAIMER within this package.
5  */
6 #ifndef _INC_RTCAPI
7 #define _INC_RTCAPI
8 
9 #include <vcruntime.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   typedef int (__cdecl *_RTC_error_fn)(int,const char *,int,const char *,const char *,...);
27   typedef int (__cdecl *_RTC_error_fnW)(int,const wchar_t *,int,const wchar_t *,const wchar_t *,...);
28 
29   int __cdecl _RTC_NumErrors(void);
30   const char *__cdecl _RTC_GetErrDesc(_RTC_ErrorNumber _Errnum);
31   int __cdecl _RTC_SetErrorType(_RTC_ErrorNumber _Errnum,int _ErrType);
32   _RTC_error_fn __cdecl _RTC_SetErrorFunc(_RTC_error_fn);
33   _RTC_error_fnW __cdecl _RTC_SetErrorFuncW(_RTC_error_fnW);
34   void __cdecl _RTC_Initialize(void);
35   void __cdecl _RTC_Terminate(void);
36   _RTC_error_fn __cdecl _CRT_RTC_INIT(void *_Res0,void **_Res1,int _Res2,int _Res3,int _Res4);
37   _RTC_error_fnW __cdecl _CRT_RTC_INITW(void *_Res0,void **_Res1,int _Res2,int _Res3,int _Res4);
38 
39   typedef struct _RTC_vardesc {
40     int addr;
41     int size;
42     char *name;
43   } _RTC_vardesc;
44 
45   typedef struct _RTC_framedesc {
46     int varCount;
47     _RTC_vardesc *variables;
48   } _RTC_framedesc;
49 
50 #pragma pack(push,1)
51 
52   typedef struct _RTC_ALLOCA_NODE {
53     __int32 guard1;
54     struct _RTC_ALLOCA_NODE *next;
55 #if (defined(_X86_) && !defined(__x86_64))
56     __int32 dummypad;
57 #endif
58     size_t allocaSize;
59 #if (defined(_X86_) && !defined(__x86_64))
60     __int32 dummypad2;
61 #endif
62     __int32 guard2[3];
63   } _RTC_ALLOCA_NODE;
64 #pragma pack(pop)
65 
66   char __fastcall _RTC_Check_2_to_1(short _Src);
67   char __fastcall _RTC_Check_4_to_1(int _Src);
68   __MINGW_EXTENSION char __fastcall _RTC_Check_8_to_1(__int64 _Src);
69   short __fastcall _RTC_Check_4_to_2(int _Src);
70   __MINGW_EXTENSION short __fastcall _RTC_Check_8_to_2(__int64 _Src);
71   __MINGW_EXTENSION int __fastcall _RTC_Check_8_to_4(__int64 _Src);
72 
73 #if (defined(_X86_) && !defined(__x86_64))
74   void __cdecl _RTC_CheckEsp(void);
75 #endif
76   void __fastcall _RTC_CheckStackVars(void *_Esp,_RTC_framedesc *_Fd);
77   void __fastcall _RTC_CheckStackVars2(void *_Esp,_RTC_framedesc *_Fd,_RTC_ALLOCA_NODE *_AllocaList);
78   void __fastcall _RTC_AllocaHelper(_RTC_ALLOCA_NODE *_PAllocaBase,size_t _CbSize,_RTC_ALLOCA_NODE **_PAllocaInfoList);
79   void __cdecl _RTC_UninitUse(const char *_Varname);
80   void __cdecl _RTC_Shutdown(void);
81   void __cdecl _RTC_InitBase(void);
82 #ifdef __cplusplus
83   void *_ReturnAddress(void);
84 }
85 #endif
86 
87 #pragma pack(pop)
88 #endif
89