Merge pull request #5714 from alexischr/update_bockbuild
[mono.git] / mono / metadata / mono-gc.h
index 24ffda7730a2ecb67c1a158f542a768e6eead89d..bd1262a67b8b60fa2dc0e3d329c5ed3170376bb0 100644 (file)
@@ -1,5 +1,6 @@
-/*
- * mono-gc.h: GC related public interface
+/**
+ * \file
+ * GC related public interface
  *
  */
 #ifndef __METADATA_MONO_GC_H__
@@ -40,14 +41,27 @@ typedef enum {
        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);