2009-03-02 Zoltan Varga <vargaz@gmail.com>
[mono.git] / mono / metadata / null-gc.c
index a39fd17bf27523abc555f3af28f827e7722ed6d4..6b1642b5ada2d7ef863c9f4dbd166a055d63d9a7 100644 (file)
@@ -1,6 +1,8 @@
 /*
  * null-gc.c: GC implementation using malloc: will leak everything, just for testing.
  *
+ * Copyright 2001-2003 Ximian, Inc (http://www.ximian.com)
+ * Copyright 2004-2009 Novell, Inc (http://www.novell.com)
  */
 
 #include "config.h"
@@ -8,7 +10,12 @@
 #include <mono/metadata/mono-gc.h>
 #include <mono/metadata/gc-internal.h>
 
-#ifndef HAVE_BOEHM_GC
+#ifdef HAVE_NULL_GC
+
+void
+mono_gc_base_init (void)
+{
+}
 
 void
 mono_gc_collect (int generation)
@@ -21,6 +28,23 @@ mono_gc_max_generation (void)
        return 0;
 }
 
+int
+mono_gc_get_generation  (MonoObject *object)
+{
+       return 0;
+}
+
+int
+mono_gc_collection_count (int generation)
+{
+       return 0;
+}
+
+void
+mono_gc_add_memory_pressure (gint64 value)
+{
+}
+
 /* maybe track the size, not important, though */
 gint64
 mono_gc_get_used_size (void)
@@ -44,6 +68,18 @@ mono_gc_enable (void)
 {
 }
 
+gboolean
+mono_gc_is_gc_thread (void)
+{
+       return TRUE;
+}
+
+gboolean
+mono_gc_register_thread (void *baseptr)
+{
+       return TRUE;
+}
+
 gboolean
 mono_object_is_alive (MonoObject* o)
 {
@@ -55,6 +91,17 @@ mono_gc_enable_events (void)
 {
 }
 
+int
+mono_gc_register_root (char *start, size_t size, void *descr)
+{
+       return TRUE;
+}
+
+void
+mono_gc_deregister_root (char* addr)
+{
+}
+
 void
 mono_gc_weak_link_add (void **link_addr, MonoObject *obj)
 {
@@ -64,6 +111,7 @@ mono_gc_weak_link_add (void **link_addr, MonoObject *obj)
 void
 mono_gc_weak_link_remove (void **link_addr)
 {
+       *link_addr = NULL;
 }
 
 MonoObject*
@@ -73,7 +121,25 @@ mono_gc_weak_link_get (void **link_addr)
 }
 
 void*
-mono_gc_make_descr_from_bitmap (unsigned int *bitmap, int numbits)
+mono_gc_make_descr_for_string (gsize *bitmap, int numbits)
+{
+       return NULL;
+}
+
+void*
+mono_gc_make_descr_for_object (gsize *bitmap, int numbits, size_t obj_size)
+{
+       return NULL;
+}
+
+void*
+mono_gc_make_descr_for_array (int vector, gsize *elem_bitmap, int numbits, size_t elem_size)
+{
+       return NULL;
+}
+
+void*
+mono_gc_make_descr_from_bitmap (gsize *bitmap, int numbits)
 {
        return NULL;
 }
@@ -87,7 +153,65 @@ mono_gc_alloc_fixed (size_t size, void *descr)
 void
 mono_gc_free_fixed (void* addr)
 {
-       g_free (size);
+       g_free (addr);
+}
+
+void
+mono_gc_wbarrier_set_field (MonoObject *obj, gpointer field_ptr, MonoObject* value)
+{
+       *(void**)field_ptr = value;
+}
+
+void
+mono_gc_wbarrier_set_arrayref (MonoArray *arr, gpointer slot_ptr, MonoObject* value)
+{
+       *(void**)slot_ptr = value;
+}
+
+void
+mono_gc_wbarrier_arrayref_copy (MonoArray *arr, gpointer slot_ptr, int count)
+{
+       /* no need to do anything */
+}
+
+void
+mono_gc_wbarrier_generic_store (gpointer ptr, MonoObject* value)
+{
+       *(void**)ptr = value;
+}
+
+void
+mono_gc_wbarrier_value_copy (gpointer dest, gpointer src, int count, MonoClass *klass)
+{
+}
+
+void
+mono_gc_wbarrier_object (MonoObject* obj)
+{
+}
+
+MonoMethod*
+mono_gc_get_managed_allocator (MonoVTable *vtable, gboolean for_box)
+{
+       return NULL;
+}
+
+int
+mono_gc_get_managed_allocator_type (MonoMethod *managed_alloc)
+{
+       return -1;
+}
+
+MonoMethod*
+mono_gc_get_managed_allocator_by_type (int atype)
+{
+       return NULL;
+}
+
+guint32
+mono_gc_get_managed_allocator_types (void)
+{
+       return 0;
 }
 
 #endif