summaryrefslogtreecommitdiff
path: root/src/vm/gcheaputilities.cpp
diff options
context:
space:
mode:
authorSean Gillespie <sean@swgillespie.me>2016-12-10 17:50:06 -0800
committerGitHub <noreply@github.com>2016-12-10 17:50:06 -0800
commit04d6bd105ade5f6189a15a6dbb59b082613429a1 (patch)
tree9209ba4b53eca61cad3a2fc94c585b6a66ff4618 /src/vm/gcheaputilities.cpp
parentd42b3935eaa056712e09a0f83b38e211bdb451d9 (diff)
downloadcoreclr-04d6bd105ade5f6189a15a6dbb59b082613429a1.tar.gz
coreclr-04d6bd105ade5f6189a15a6dbb59b082613429a1.tar.bz2
coreclr-04d6bd105ade5f6189a15a6dbb59b082613429a1.zip
Local GC: Decouple write barrier operations between the GC and EE (#8568)
* Decouple write barrier operations between the GC and EE * Address code review feedback * Address code review feedback * Repair the standalone GC build
Diffstat (limited to 'src/vm/gcheaputilities.cpp')
-rw-r--r--src/vm/gcheaputilities.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/vm/gcheaputilities.cpp b/src/vm/gcheaputilities.cpp
index ceadb9ea42..ac24fa34ce 100644
--- a/src/vm/gcheaputilities.cpp
+++ b/src/vm/gcheaputilities.cpp
@@ -5,5 +5,15 @@
#include "common.h"
#include "gcheaputilities.h"
+// These globals are variables used within the GC and maintained
+// by the EE for use in write barriers. It is the responsibility
+// of the GC to communicate updates to these globals to the EE through
+// GCToEEInterface::StompWriteBarrierResize and GCToEEInterface::StompWriteBarrierEphemeral.
+GPTR_IMPL_INIT(uint32_t, g_card_table, nullptr);
+GPTR_IMPL_INIT(uint8_t, g_lowest_address, nullptr);
+GPTR_IMPL_INIT(uint8_t, g_highest_address, nullptr);
+uint8_t* g_ephemeral_low = (uint8_t*)1;
+uint8_t* g_ephemeral_high = (uint8_t*)~0;
+
// This is the global GC heap, maintained by the VM.
GPTR_IMPL(IGCHeap, g_pGCHeap); \ No newline at end of file