projects
/
mono.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix the windows build.
[mono.git]
/
mono
/
metadata
/
null-gc.c
diff --git
a/mono/metadata/null-gc.c
b/mono/metadata/null-gc.c
index d323b9b54b0578aae654a2c85798c737e8d8b11a..86a2528b09f62a876d48a9d513c1c8364975350b 100644
(file)
--- a/
mono/metadata/null-gc.c
+++ b/
mono/metadata/null-gc.c
@@
-2,19
+2,29
@@
* null-gc.c: GC implementation using malloc: will leak everything, just for testing.
*
* Copyright 2001-2003 Ximian, Inc (http://www.ximian.com)
* 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)
+ * Copyright 2004-2011 Novell, Inc (http://www.novell.com)
+ * Copyright 2011 Xamarin, Inc (http://www.xamarin.com)
*/
#include "config.h"
#include <glib.h>
#include <mono/metadata/mono-gc.h>
#include <mono/metadata/gc-internal.h>
*/
#include "config.h"
#include <glib.h>
#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
void
mono_gc_base_init (void)
{
#ifdef HAVE_NULL_GC
void
mono_gc_base_init (void)
{
+ MonoThreadInfoCallbacks cb;
+
+ 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
}
void
@@
-58,16
+68,6
@@
mono_gc_get_heap_size (void)
return 2*1024*1024;
}
return 2*1024*1024;
}
-void
-mono_gc_disable (void)
-{
-}
-
-void
-mono_gc_enable (void)
-{
-}
-
gboolean
mono_gc_is_gc_thread (void)
{
gboolean
mono_gc_is_gc_thread (void)
{
@@
-115,7
+115,7
@@
mono_gc_weak_link_add (void **link_addr, MonoObject *obj, gboolean track)
}
void
}
void
-mono_gc_weak_link_remove (void **link_addr)
+mono_gc_weak_link_remove (void **link_addr
, gboolean track
)
{
*link_addr = NULL;
}
{
*link_addr = NULL;
}
@@
-192,6
+192,12
@@
mono_gc_wbarrier_generic_store (gpointer ptr, MonoObject* value)
*(void**)ptr = 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)
{
void
mono_gc_wbarrier_generic_nostore (gpointer ptr)
{
@@
-218,13
+224,13
@@
mono_gc_is_critical_method (MonoMethod *method)
}
MonoMethod*
}
MonoMethod*
-mono_gc_get_managed_allocator (Mono
VTable *vtable
, gboolean for_box)
+mono_gc_get_managed_allocator (Mono
Class *klass
, gboolean for_box)
{
return NULL;
}
MonoMethod*
{
return NULL;
}
MonoMethod*
-mono_gc_get_managed_array_allocator (Mono
VTable *vtable, int rank
)
+mono_gc_get_managed_array_allocator (Mono
Class *klass
)
{
return NULL;
}
{
return NULL;
}
@@
-328,12
+334,24
@@
mono_gc_get_card_table (int *shift_bits, gpointer *card_mask)
return NULL;
}
return NULL;
}
+gboolean
+mono_gc_card_table_nursery_check (void)
+{
+ g_assert_not_reached ();
+ return TRUE;
+}
+
void*
mono_gc_get_nursery (int *shift_bits, size_t *size)
{
return NULL;
}
void*
mono_gc_get_nursery (int *shift_bits, size_t *size)
{
return NULL;
}
+void
+mono_gc_set_current_thread_appdomain (MonoDomain *domain)
+{
+}
+
gboolean
mono_gc_precise_stack_mark_enabled (void)
{
gboolean
mono_gc_precise_stack_mark_enabled (void)
{
@@
-371,12
+389,36
@@
mono_gc_set_gc_callbacks (MonoGCCallbacks *callbacks)
{
}
{
}
+void
+mono_gc_set_stack_end (void *stack_end)
+{
+}
+
+int
+mono_gc_get_los_limit (void)
+{
+ return G_MAXINT;
+}
+
+gboolean
+mono_gc_user_markers_supported (void)
+{
+ return FALSE;
+}
+
+void *
+mono_gc_make_root_descr_user (MonoGCRootMarkFunc marker)
+{
+ g_assert_not_reached ();
+ return NULL;
+}
+
#ifndef HOST_WIN32
int
mono_gc_pthread_create (pthread_t *new_thread, const pthread_attr_t *attr, void *(*start_routine)(void *), void *arg)
{
#ifndef HOST_WIN32
int
mono_gc_pthread_create (pthread_t *new_thread, const pthread_attr_t *attr, void *(*start_routine)(void *), void *arg)
{
- return
mono_threads_
pthread_create (new_thread, attr, start_routine, arg);
+ return pthread_create (new_thread, attr, start_routine, arg);
}
int
}
int
@@
-391,6
+433,15
@@
mono_gc_pthread_detach (pthread_t thread)
return pthread_detach (thread);
}
return pthread_detach (thread);
}
+void
+mono_gc_pthread_exit (void *retval)
+{
+ pthread_exit (retval);
+}
+
+void mono_gc_set_skip_thread (gboolean value)
+{
+}
#endif
#ifdef HOST_WIN32
#endif
#ifdef HOST_WIN32
@@
-400,4
+451,21
@@
BOOL APIENTRY mono_gc_dllmain (HMODULE module_handle, DWORD reason, LPVOID reser
}
#endif
}
#endif
+guint
+mono_gc_get_vtable_bits (MonoClass *class)
+{
+ return 0;
+}
+
+void
+mono_gc_register_altstack (gpointer stack, gint32 stack_size, gpointer altstack, gint32 altstack_size)
+{
+}
+
+gboolean
+mono_gc_set_allow_synchronous_major (gboolean flag)
+{
+ return TRUE;
+}
+
#endif
#endif