summaryrefslogtreecommitdiffstats
path: root/src/VBox/Devices/Graphics/shaderlib/wine/include/msvcrt/crtdbg.h
blob: 8e5edb9fb496fba395f275ed5005c7a1dff51163 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
/*
 * Debug API
 *
 * Copyright 2001 Francois Gouget.
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 */

/*
 * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
 * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
 * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
 * a choice of LGPL license versions is made available with the language indicating
 * that LGPLv2 or any later version may be used, or where a choice of which version
 * of the LGPL is applied is otherwise unspecified.
 */

#ifndef __WINE_CRTDBG_H_
#define __WINE_CRTDBG_H_

#include <crtdefs.h>

/* The debug API is not implemented in Winelib.
 * Redirect everything to the regular APIs.
 */

#define _CRT_WARN                       0
#define _CRT_ERROR                      1
#define _CRT_ASSERT                     2
#define _CRT_ERRCNT                     3

#define _FREE_BLOCK                     0
#define _NORMAL_BLOCK                   1
#define _CRT_BLOCK                      2
#define _IGNORE_BLOCK                   3
#define _CLIENT_BLOCK                   4
#define _MAX_BLOCKS                     5

#define _BLOCK_TYPE(block)              (block & 0xFFFF)
#define _BLOCK_SUBTYPE(block)           (block >> 16 & 0xFFFF)

typedef struct _CrtMemState
{
    struct _CrtMemBlockHeader* pBlockHeader;
    __msvcrt_ulong lCounts[_MAX_BLOCKS];
    __msvcrt_ulong lSizes[_MAX_BLOCKS];
    __msvcrt_ulong lHighWaterCount;
    __msvcrt_ulong lTotalCount;
} _CrtMemState;


#ifndef _DEBUG

#define _ASSERT(expr)                   ((void)0)
#define _ASSERTE(expr)                  ((void)0)
#define _CrtDbgBreak()                  ((void)0)

#define _CrtCheckMemory()               ((int)1)
#define _CrtDbgReport(...)              ((int)0)
#define _CrtDumpMemoryLeaks()           ((int)0)
#define _CrtSetBreakAlloc(a)            ((__msvcrt_long)0)
#define _CrtSetDbgFlag(f)               ((int)0)
#define _CrtSetDumpClient(f)            ((void)0)
#define _CrtSetReportMode(t,m)          ((int)0)

#else /* _DEBUG */

#include <assert.h>
#define _ASSERT(expr)                   assert(expr)
#define _ASSERTE(expr)                  assert(expr)
#if defined(__GNUC__) && defined(__i386__)
#define _CrtDbgBreak()                  __asm__ ("\tint $0x3\n")
#else
#define _CrtDbgBreak()                  ((void)0)
#endif

#ifdef __cplusplus
extern "C" {
#endif

extern int _crtAssertBusy;
extern int _crtBreakAlloc;
extern int _crtDbgFlag;

int   __cdecl _CrtCheckMemory(void);
int   __cdecl _CrtDbgReport(int reportType, const char *filename, int linenumber,
                            const char *moduleName, const char *format, ...);
int   __cdecl _CrtDumpMemoryLeaks(void);
int   __cdecl _CrtSetBreakAlloc(int);
int   __cdecl _CrtSetDbgFlag(int);
void *__cdecl _CrtSetDumpClient(void *dumpClient);
int   __cdecl _CrtSetReportMode(int reportType, int reportMode);

#ifdef __cplusplus
}
#endif

#endif /* _DEBUG */

#define _CrtDoForAllClientObjects(f,c)  ((void)0)
#define _CrtIsMemoryBlock(p,s,r,f,l)    ((int)1)
#define _CrtIsValidHeapPointer(p)       ((int)1)
#define _CrtIsValidPointer(p,s,a)       ((int)1)
#define _CrtMemCheckpoint(s)            ((void)0)
#define _CrtMemDifference(s1,s2,s3)     ((int)0)
#define _CrtMemDumpAllObjectsSince(s)   ((void)0)
#define _CrtMemDumpStatistics(s)        ((void)0)
#define _CrtSetAllocHook(f)             ((void)0)

#define _RPT0(t,m)
#define _RPT1(t,m,p1)
#define _RPT2(t,m,p1,p2)
#define _RPT3(t,m,p1,p2,p3)
#define _RPT4(t,m,p1,p2,p3,p4)
#define _RPTF0(t,m)
#define _RPTF1(t,m,p1)
#define _RPTF2(t,m,p1,p2)
#define _RPTF3(t,m,p1,p2,p3)
#define _RPTF4(t,m,p1,p2,p3,p4)


#define _malloc_dbg(s,t,f,l)            malloc(s)
#define _calloc_dbg(c,s,t,f,l)          calloc(c,s)
#define _expand_dbg(p,s,t,f,l)          _expand(p,s)
#define _free_dbg(p,t)                  free(p)
#define _realloc_dbg(p,s,t,f,l)         realloc(p,s)

#endif /* __WINE_CRTDBG_H */