master
 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 <crtdefs.h>
10
11#pragma pack(push,_CRT_PACKING)
12
13#define _RTCINTERNAL_DEPRECATED
14
15#ifdef __cplusplus
16extern "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