-/*
- * mono-gc.h: GC related public interface
+/**
+ * \file
+ * GC related public interface
*
*/
#ifndef __METADATA_MONO_GC_H__
MONO_ROOT_SOURCE_THREAD_POOL = 12,
// Roots in the debugger agent.
MONO_ROOT_SOURCE_DEBUGGER = 13,
+ // Handle structures, used for object passed to internal functions
+ MONO_ROOT_SOURCE_HANDLE = 14,
} MonoGCRootSource;
+typedef enum {
+ MONO_GC_HANDLE_TYPE_MIN = 0,
+ MONO_GC_HANDLE_WEAK = MONO_GC_HANDLE_TYPE_MIN,
+ MONO_GC_HANDLE_WEAK_TRACK_RESURRECTION,
+ MONO_GC_HANDLE_NORMAL,
+ MONO_GC_HANDLE_PINNED,
+ MONO_GC_HANDLE_TYPE_MAX,
+} MonoGCHandleType;
+
MONO_API void mono_gc_collect (int generation);
MONO_API int mono_gc_max_generation (void);
MONO_API int mono_gc_get_generation (MonoObject *object);
MONO_API int mono_gc_collection_count (int generation);
MONO_API int64_t mono_gc_get_used_size (void);
MONO_API int64_t mono_gc_get_heap_size (void);
+MONO_API MonoBoolean mono_gc_pending_finalizers (void);
+MONO_API void mono_gc_finalize_notify (void);
MONO_API int mono_gc_invoke_finalizers (void);
/* heap walking is only valid in the pre-stop-world event callback */
MONO_API int mono_gc_walk_heap (int flags, MonoGCReferences callback, void *data);