[sgen] Clear the card table in the finishing pause
[mono.git] / mono / sgen / sgen-client.h
index cb332823789a01da7a3ac9ee0a2ad2b987d82b8a..edf9dde8439e1f1cd4bef151e6dde539d853caf3 100644 (file)
@@ -87,6 +87,19 @@ gboolean sgen_client_mark_ephemerons (ScanCopyContext ctx);
  */
 void sgen_client_clear_unreachable_ephemerons (ScanCopyContext ctx);
 
+/*
+ * May return NULL.  Must be an aligned pointer.
+ */
+gpointer sgen_client_default_metadata (void);
+gpointer sgen_client_metadata_for_object (GCObject *obj);
+
+/*
+ * No action required.
+ */
+void sgen_client_gchandle_created (int handle_type, GCObject *obj, guint32 handle);
+void sgen_client_gchandle_destroyed (int handle_type, guint32 handle);
+void sgen_client_ensure_weak_gchandles_accessible (void);
+
 /*
  * This is called for objects that are larger than one card.  If it's possible to scan only
  * parts of the object based on which cards are marked, do so and return TRUE.  Otherwise,
@@ -127,14 +140,6 @@ void sgen_client_degraded_allocation (size_t size);
  */
 void sgen_client_total_allocated_heap_changed (size_t allocated_heap_size);
 
-/*
- * Called when an object allocation fails.  The suggested action is to abort the program.
- *
- * FIXME: Don't we want to return a BOOL here that indicates whether to retry the
- * allocation?
- */
-void sgen_client_out_of_memory (size_t size);
-
 /*
  * If the client has registered any internal memory types, this must return a string
  * describing the given type.  Only used for debugging.
@@ -272,8 +277,6 @@ void sgen_client_describe_invalid_pointer (GCObject *ptr);
 #define BEGIN_PROTOCOL_ENTRY_HEAVY6(method,t1,f1,t2,f2,t3,f3,t4,f4,t5,f5,t6,f6) \
        void sgen_client_ ## method (t1 f1, t2 f2, t3 f3, t4 f4, t5 f5, t6 f6);
 
-#define FLUSH()
-
 #define DEFAULT_PRINT()
 #define CUSTOM_PRINT(_)
 
@@ -282,6 +285,7 @@ void sgen_client_describe_invalid_pointer (GCObject *ptr);
 #define IS_VTABLE_MATCH(_)
 
 #define END_PROTOCOL_ENTRY
+#define END_PROTOCOL_ENTRY_FLUSH
 #define END_PROTOCOL_ENTRY_HEAVY
 
 #include "sgen-protocol-def.h"