1// Licensed to the .NET Foundation under one or more agreements.
2// The .NET Foundation licenses this file to you under the MIT license.
3// See the LICENSE file in the project root for more information.
4#ifndef __GCENV_H__
5#define __GCENV_H__
6
7#if defined(_DEBUG)
8#ifndef _DEBUG_IMPL
9#define _DEBUG_IMPL 1
10#endif
11#define ASSERT(_expr) assert(_expr)
12#else
13#define ASSERT(_expr)
14#endif
15
16#ifndef _ASSERTE
17#define _ASSERTE(_expr) ASSERT(_expr)
18#endif
19
20#include "gcenv.structs.h"
21#include "gcenv.base.h"
22#include "gcenv.os.h"
23#include "gcenv.interlocked.h"
24#include "gcenv.interlocked.inl"
25#include "gcenv.object.h"
26#include "gcenv.sync.h"
27#include "gcinterface.h"
28#include "gcenv.ee.h"
29#include "volatile.h"
30
31#define MAX_LONGPATH 1024
32
33#ifdef _MSC_VER
34#define SUPPRESS_WARNING_4127 \
35 __pragma(warning(push)) \
36 __pragma(warning(disable:4127)) /* conditional expression is constant*/
37#define POP_WARNING_STATE \
38 __pragma(warning(pop))
39#else // _MSC_VER
40#define SUPPRESS_WARNING_4127
41#define POP_WARNING_STATE
42#endif // _MSC_VER
43
44#define WHILE_0 \
45 SUPPRESS_WARNING_4127 \
46 while(0) \
47 POP_WARNING_STATE \
48
49#define LL_INFO10 4
50
51#define STRESS_LOG_VA(msg) do { } WHILE_0
52#define STRESS_LOG0(facility, level, msg) do { } WHILE_0
53#define STRESS_LOG1(facility, level, msg, data1) do { } WHILE_0
54#define STRESS_LOG2(facility, level, msg, data1, data2) do { } WHILE_0
55#define STRESS_LOG3(facility, level, msg, data1, data2, data3) do { } WHILE_0
56#define STRESS_LOG4(facility, level, msg, data1, data2, data3, data4) do { } WHILE_0
57#define STRESS_LOG5(facility, level, msg, data1, data2, data3, data4, data5) do { } WHILE_0
58#define STRESS_LOG6(facility, level, msg, data1, data2, data3, data4, data5, data6) do { } WHILE_0
59#define STRESS_LOG7(facility, level, msg, data1, data2, data3, data4, data5, data6, data7) do { } WHILE_0
60#define STRESS_LOG_PLUG_MOVE(plug_start, plug_end, plug_delta) do { } WHILE_0
61#define STRESS_LOG_ROOT_PROMOTE(root_addr, objPtr, methodTable) do { } WHILE_0
62#define STRESS_LOG_ROOT_RELOCATE(root_addr, old_value, new_value, methodTable) do { } WHILE_0
63#define STRESS_LOG_GC_START(gcCount, Gen, collectClasses) do { } WHILE_0
64#define STRESS_LOG_GC_END(gcCount, Gen, collectClasses) do { } WHILE_0
65#define STRESS_LOG_OOM_STACK(size) do { } while(0)
66#define STRESS_LOG_RESERVE_MEM(numChunks) do {} while (0)
67#define STRESS_LOG_GC_STACK
68
69#define LOG(x)
70
71#define SVAL_IMPL_INIT(type, cls, var, init) \
72 type cls::var = init
73
74#include "etmdummy.h"
75#define ETW_EVENT_ENABLED(e,f) false
76
77#endif // __GCENV_H__
78