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
5#ifndef GCENV_H_
6#define GCENV_H_
7
8//
9// Extra VM headers required to compile GC-related files
10//
11
12#include "finalizerthread.h"
13
14#include "threadsuspend.h"
15
16#ifdef FEATURE_COMINTEROP
17#include <windows.ui.xaml.h>
18#endif
19
20#include "stubhelpers.h"
21
22#include "eeprofinterfaces.inl"
23
24#ifdef GC_PROFILING
25#include "eetoprofinterfaceimpl.h"
26#include "eetoprofinterfaceimpl.inl"
27#include "profilepriv.h"
28#endif
29
30#ifdef DEBUGGING_SUPPORTED
31#include "dbginterface.h"
32#endif
33
34#ifdef FEATURE_COMINTEROP
35#include "runtimecallablewrapper.h"
36#endif // FEATURE_COMINTEROP
37
38
39
40#define GCMemoryStatus MEMORYSTATUSEX
41
42#include "util.hpp"
43
44#include "gcenv.interlocked.h"
45#include "gcenv.interlocked.inl"
46
47#ifdef PLATFORM_UNIX
48#include "gcenv.unix.inl"
49#else
50#include "gcenv.windows.inl"
51#endif
52
53namespace ETW
54{
55 typedef enum _GC_ROOT_KIND {
56 GC_ROOT_STACK = 0,
57 GC_ROOT_FQ = 1,
58 GC_ROOT_HANDLES = 2,
59 GC_ROOT_OLDER = 3,
60 GC_ROOT_SIZEDREF = 4,
61 GC_ROOT_OVERFLOW = 5
62 } GC_ROOT_KIND;
63};
64
65#ifdef PLATFORM_UNIX
66#define _tcslen wcslen
67#define _tcscpy wcscpy
68#define _tfopen _wfopen
69#endif
70
71#endif // GCENV_H_
72