summaryrefslogtreecommitdiff
path: root/src/gc/env/gcenv.ee.h
diff options
context:
space:
mode:
authorPeter Kukol <pkukol@users.noreply.github.com>2016-09-28 18:29:33 -0700
committerGitHub <noreply@github.com>2016-09-28 18:29:33 -0700
commitf20f51697d2c61ce998ed7514a327e3c1e1936bc (patch)
treee0285a495133411d5d993a9ba65a1e3d22a4756d /src/gc/env/gcenv.ee.h
parent0d46a91f2f48282fd004a35c8a28ddb24432237e (diff)
downloadcoreclr-f20f51697d2c61ce998ed7514a327e3c1e1936bc.tar.gz
coreclr-f20f51697d2c61ce998ed7514a327e3c1e1936bc.tar.bz2
coreclr-f20f51697d2c61ce998ed7514a327e3c1e1936bc.zip
Add option to measure time spent inside calls to the CLR. (#7357)
* Add option to measure time spent inside calls to the CLR (off by default).
Diffstat (limited to 'src/gc/env/gcenv.ee.h')
-rw-r--r--src/gc/env/gcenv.ee.h27
1 files changed, 26 insertions, 1 deletions
diff --git a/src/gc/env/gcenv.ee.h b/src/gc/env/gcenv.ee.h
index dc6c1d84bb..f71380e1a1 100644
--- a/src/gc/env/gcenv.ee.h
+++ b/src/gc/env/gcenv.ee.h
@@ -7,11 +7,36 @@
#ifndef __GCENV_EE_H__
#define __GCENV_EE_H__
-#include "gcinterface.h"
+struct ScanContext;
+class CrawlFrame;
+struct gc_alloc_context;
+
+typedef void promote_func(PTR_PTR_Object, ScanContext*, uint32_t);
+
+typedef void enum_alloc_context_func(gc_alloc_context*, void*);
+
+typedef struct
+{
+ promote_func* f;
+ ScanContext* sc;
+ CrawlFrame * cf;
+} GCCONTEXT;
+
+// GC background thread function prototype
+typedef uint32_t (__stdcall *GCBackgroundThreadFunction)(void* param);
class GCToEEInterface
{
public:
+ //
+ // Suspend/Resume callbacks
+ //
+ typedef enum
+ {
+ SUSPEND_FOR_GC = 1,
+ SUSPEND_FOR_GC_PREP = 6
+ } SUSPEND_REASON;
+
static void SuspendEE(SUSPEND_REASON reason);
static void RestartEE(bool bFinishedGC); //resume threads.