Fix the windows build.
[mono.git] / mono / metadata / null-gc.c
index 5f6a3791d32a0bfa21d0bb04e64768e1b63f9c24..86a2528b09f62a876d48a9d513c1c8364975350b 100644 (file)
@@ -11,6 +11,7 @@
 #include <mono/metadata/mono-gc.h>
 #include <mono/metadata/gc-internal.h>
 #include <mono/metadata/runtime.h>
+#include <mono/utils/mono-threads.h>
 
 #ifdef HAVE_NULL_GC
 
@@ -22,6 +23,8 @@ mono_gc_base_init (void)
        memset (&cb, 0, sizeof (cb));
        cb.mono_method_is_critical = mono_runtime_is_critical_method;
        cb.mono_gc_pthread_create = (gpointer)mono_gc_pthread_create;
+
+       mono_threads_init (&cb, sizeof (MonoThreadInfo));
 }
 
 void
@@ -65,16 +68,6 @@ mono_gc_get_heap_size (void)
        return 2*1024*1024;
 }
 
-void
-mono_gc_disable (void)
-{
-}
-
-void
-mono_gc_enable (void)
-{
-}
-
 gboolean
 mono_gc_is_gc_thread (void)
 {
@@ -199,6 +192,12 @@ mono_gc_wbarrier_generic_store (gpointer ptr, MonoObject* value)
        *(void**)ptr = value;
 }
 
+void
+mono_gc_wbarrier_generic_store_atomic (gpointer ptr, MonoObject *value)
+{
+       InterlockedWritePointer (ptr, value);
+}
+
 void
 mono_gc_wbarrier_generic_nostore (gpointer ptr)
 {
@@ -225,13 +224,13 @@ mono_gc_is_critical_method (MonoMethod *method)
 }
 
 MonoMethod*
-mono_gc_get_managed_allocator (MonoVTable *vtable, gboolean for_box)
+mono_gc_get_managed_allocator (MonoClass *klass, gboolean for_box)
 {
        return NULL;
 }
 
 MonoMethod*
-mono_gc_get_managed_array_allocator (MonoVTable *vtable, int rank)
+mono_gc_get_managed_array_allocator (MonoClass *klass)
 {
        return NULL;
 }
@@ -463,4 +462,10 @@ mono_gc_register_altstack (gpointer stack, gint32 stack_size, gpointer altstack,
 {
 }
 
+gboolean
+mono_gc_set_allow_synchronous_major (gboolean flag)
+{
+       return TRUE;
+}
+
 #endif