[sgen] Remove dependency on `mono-gc.h`.
authorMark Probst <mark.probst@gmail.com>
Thu, 1 Jan 2015 19:30:35 +0000 (11:30 -0800)
committerMark Probst <mark.probst@gmail.com>
Wed, 29 Apr 2015 17:59:48 +0000 (10:59 -0700)
mono/metadata/sgen-client.h
mono/metadata/sgen-gc.c
mono/metadata/sgen-gc.h
mono/metadata/sgen-memory-governor.c
mono/metadata/sgen-mono.c

index c31b28a26ab1b5295f347b31d73f7af300da84d9..758437d064f9cc05bb51039a28c734684c60249d 100644 (file)
@@ -58,6 +58,8 @@ gboolean sgen_client_object_has_critical_finalizer (GCObject *obj);
  */
 void sgen_client_object_queued_for_finalization (GCObject *obj);
 
+void sgen_client_run_finalize (MonoObject *obj);
+
 gboolean sgen_client_mark_ephemerons (ScanCopyContext ctx);
 
 /*
index c27b4bde17f116deef1dd0ef716e7dc9fcb9ef53..9920fd59ea8f4c8aaf047431dffdb1660b58a290 100644 (file)
 #include "metadata/sgen-bridge.h"
 #include "metadata/sgen-memory-governor.h"
 #include "metadata/sgen-hash-table.h"
-#include "metadata/mono-gc.h"
 #include "metadata/sgen-cardtable.h"
 #include "metadata/sgen-pinning.h"
 #include "metadata/sgen-workers.h"
@@ -1057,7 +1056,7 @@ alloc_nursery (void)
 
        data = major_collector.alloc_heap (alloc_size, alloc_size, DEFAULT_NURSERY_BITS);
        sgen_update_heap_boundaries ((mword)data, (mword)(data + sgen_nursery_size));
-       SGEN_LOG (4, "Expanding nursery size (%p-%p): %lu, total: %lu", data, data + alloc_size, (unsigned long)sgen_nursery_size, (unsigned long)mono_gc_get_heap_size ());
+       SGEN_LOG (4, "Expanding nursery size (%p-%p): %lu, total: %lu", data, data + alloc_size, (unsigned long)sgen_nursery_size, (unsigned long)sgen_gc_get_total_heap_allocation ());
        section->data = section->next_data = data;
        section->size = alloc_size;
        section->end_data = data + sgen_nursery_size;
@@ -2468,7 +2467,7 @@ sgen_perform_collection (size_t requested_size, int generation_to_collect, const
                oldest_generation_collected = MAX (oldest_generation_collected, overflow_generation_to_collect);
        }
 
-       SGEN_LOG (2, "Heap size: %lu, LOS size: %lu", (unsigned long)mono_gc_get_heap_size (), (unsigned long)los_memory_usage);
+       SGEN_LOG (2, "Heap size: %lu, LOS size: %lu", (unsigned long)sgen_gc_get_total_heap_allocation (), (unsigned long)los_memory_usage);
 
        /* this also sets the proper pointers for the next allocation */
        if (generation_to_collect == GENERATION_NURSERY && !sgen_can_alloc_size (requested_size)) {
@@ -2583,7 +2582,7 @@ sgen_object_is_live (void *obj)
 static volatile gboolean pending_unqueued_finalizer = FALSE;
 
 int
-mono_gc_invoke_finalizers (void)
+sgen_gc_invoke_finalizers (void)
 {
        int count = 0;
 
@@ -2622,7 +2621,7 @@ mono_gc_invoke_finalizers (void)
                count++;
                /* the object is on the stack so it is pinned */
                /*g_print ("Calling finalizer for object: %p (%s)\n", obj, sgen_client_object_safe_name (obj));*/
-               mono_gc_run_finalize (obj, NULL);
+               sgen_client_run_finalize (obj);
        }
 
        if (pending_unqueued_finalizer) {
@@ -2937,7 +2936,7 @@ void mono_gc_wbarrier_value_copy_bitmap (gpointer _dest, gpointer _src, int size
  */
 
 void
-mono_gc_collect (int generation)
+sgen_gc_collect (int generation)
 {
        LOCK_GC;
        if (generation > 1)
@@ -2947,15 +2946,15 @@ mono_gc_collect (int generation)
 }
 
 int
-mono_gc_collection_count (int generation)
+sgen_gc_collection_count (int generation)
 {
        if (generation == 0)
                return gc_stats.minor_gc_count;
        return gc_stats.major_gc_count;
 }
 
-int64_t
-mono_gc_get_used_size (void)
+size_t
+sgen_gc_get_used_size (void)
 {
        gint64 tot = 0;
        LOCK_GC;
index 0a72a2037a0d630765c4c09303d266a1fb1880d4..37aa9635b00dbb624a4634bcf00120ed86dd8b9b 100644 (file)
@@ -832,10 +832,16 @@ void sgen_pin_object (void *object, SgenGrayQueue *queue);
 void sgen_set_pinned_from_failed_allocation (mword objsize);
 
 void sgen_ensure_free_space (size_t size);
+void sgen_gc_collect (int generation);
 void sgen_perform_collection (size_t requested_size, int generation_to_collect, const char *reason, gboolean wait_to_finish);
 gboolean sgen_has_critical_method (void);
 gboolean sgen_is_critical_method (MonoMethod *method);
 
+int sgen_gc_collection_count (int generation);
+/* FIXME: what exactly does this return? */
+size_t sgen_gc_get_used_size (void);
+size_t sgen_gc_get_total_heap_allocation (void);
+
 /* STW */
 
 typedef struct {
@@ -952,6 +958,8 @@ sgen_is_object_alive_for_current_gen (char *object)
        return sgen_major_is_object_alive (object);
 }
 
+int sgen_gc_invoke_finalizers (void);
+
 /* TLS Data */
 
 extern MonoNativeTlsKey thread_info_key;
index 0703d1020cc9f2a3296d9aa2f4029d2312b03582..dad2b823e11ff15b61509d6d43cef873d59ff42c 100644 (file)
@@ -30,7 +30,6 @@
 #include "metadata/sgen-gc.h"
 #include "metadata/sgen-memory-governor.h"
 #include "metadata/sgen-thread-pool.h"
-#include "metadata/mono-gc.h"
 #include "metadata/sgen-client.h"
 
 #define MIN_MINOR_COLLECTION_ALLOWANCE ((mword)(DEFAULT_NURSERY_SIZE * default_allowance_nursery_size_ratio))
@@ -265,8 +264,8 @@ sgen_free_os_memory (void *addr, size_t size, SgenAllocFlags flags)
        total_alloc_max = MAX (total_alloc_max, total_alloc);
 }
 
-int64_t
-mono_gc_get_heap_size (void)
+size_t
+sgen_gc_get_total_heap_allocation (void)
 {
        return total_alloc;
 }
index 7c4f2149fd84158ed3b8dbcb616812ad5c01530b..c8fd66f45c249695ef40d32b99d8fbfe20b4d066 100644 (file)
@@ -450,6 +450,18 @@ mono_gc_register_finalizer_callbacks (MonoGCFinalizerCallbacks *callbacks)
        fin_callbacks = *callbacks;
 }
 
+void
+sgen_client_run_finalize (MonoObject *obj)
+{
+       mono_gc_run_finalize (obj, NULL);
+}
+
+int
+mono_gc_invoke_finalizers (void)
+{
+       return sgen_gc_invoke_finalizers ();
+}
+
 /*
  * Ephemerons
  */
@@ -2241,6 +2253,30 @@ mono_gc_precise_stack_mark_enabled (void)
        return !conservative_stack_mark;
 }
 
+void
+mono_gc_collect (int generation)
+{
+       sgen_gc_collect (generation);
+}
+
+int
+mono_gc_collection_count (int generation)
+{
+       return sgen_gc_collection_count (generation);
+}
+
+int64_t
+mono_gc_get_used_size (void)
+{
+       return (int64_t)sgen_gc_get_used_size ();
+}
+
+int64_t
+mono_gc_get_heap_size (void)
+{
+       return (int64_t)sgen_gc_get_total_heap_allocation ();
+}
+
 /*
  * Logging
  */