diff options
Diffstat (limited to 'src/gc/gcinterface.h')
-rw-r--r-- | src/gc/gcinterface.h | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/src/gc/gcinterface.h b/src/gc/gcinterface.h index 1457848992..99d79df633 100644 --- a/src/gc/gcinterface.h +++ b/src/gc/gcinterface.h @@ -46,7 +46,9 @@ enum class WriteBarrierOp { StompResize, StompEphemeral, - Initialize + Initialize, + SwitchToWriteWatch, + SwitchToNonWriteWatch }; // Arguments to GCToEEInterface::StompWriteBarrier @@ -85,11 +87,15 @@ struct WriteBarrierParameters // The new start of the ephemeral generation. // Used for WriteBarrierOp::StompEphemeral. - uint8_t* ephemeral_lo; + uint8_t* ephemeral_low; // The new end of the ephemeral generation. // Used for WriteBarrierOp::StompEphemeral. - uint8_t* ephemeral_hi; + uint8_t* ephemeral_high; + + // The new write watch table, if we are using our own write watch + // implementation. Used for WriteBarrierOp::SwitchToWriteWatch only. + uint8_t* write_watch_table; }; #include "gcinterface.ee.h" @@ -148,6 +154,10 @@ struct segment_info #define max_generation 2 +// The bit shift used to convert a memory address into an index into the +// Software Write Watch table. +#define SOFTWARE_WRITE_WATCH_AddressToTableByteIndexShift 0xc + class Object; class IGCHeap; @@ -303,6 +313,10 @@ public: // Gets the next finalizable object. virtual Object* GetNextFinalizable() = 0; + // Sets whether or not the GC should report all finalizable objects as + // ready to be finalized, instead of only collectable objects. + virtual void SetFinalizeRunOnShutdown(bool value) = 0; + /* =========================================================================== BCL routines. These are routines that are directly exposed by mscorlib @@ -398,9 +412,6 @@ public: // sanity checks asserting that a GC has not occured. virtual unsigned GetGcCount() = 0; - // Sets cards after an object has been memmoved. - virtual void SetCardsAfterBulkCopy(Object** obj, size_t length) = 0; - // Gets whether or not the home heap of this alloc context matches the heap // associated with this thread. virtual bool IsThreadUsingAllocationContextHeap(gc_alloc_context* acontext, int thread_number) = 0; |