#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"
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;
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)) {
static volatile gboolean pending_unqueued_finalizer = FALSE;
int
-mono_gc_invoke_finalizers (void)
+sgen_gc_invoke_finalizers (void)
{
int count = 0;
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) {
*/
void
-mono_gc_collect (int generation)
+sgen_gc_collect (int generation)
{
LOCK_GC;
if (generation > 1)
}
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;
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 {
return sgen_major_is_object_alive (object);
}
+int sgen_gc_invoke_finalizers (void);
+
/* TLS Data */
extern MonoNativeTlsKey thread_info_key;
#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))
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;
}
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
*/
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
*/