#undef TYPE_SIZE
#undef TYPE_POINTER
#undef TYPE_BOOL
+
+#ifdef SGEN_WITHOUT_MONO
+SgenThreadInfo* mono_thread_info_current (void);
+int mono_thread_info_get_small_id (void);
+#endif
SGEN_TV_GETTIME (sgen_init_timestamp);
+#ifdef SGEN_WITHOUT_MONO
+ mono_thread_smr_init ();
+#endif
+
LOCK_INIT (gc_mutex);
gc_debug_file = stderr;
#include <config.h>
+#include <string.h>
+
#include <mono/utils/hazard-pointer.h>
#include <mono/utils/mono-membar.h>
#include <mono/utils/mono-memory-model.h>
-#include <mono/utils/mono-mmap.h>
#include <mono/utils/monobitset.h>
-#include <mono/utils/mono-threads.h>
#include <mono/utils/lock-free-array-queue.h>
-#include <mono/utils/mono-counters.h>
#include <mono/utils/atomic.h>
+#include <mono/utils/mono-mutex.h>
+#ifdef SGEN_WITHOUT_MONO
+#include <mono/metadata/sgen-gc.h>
+#include <mono/metadata/sgen-client.h>
+#else
+#include <mono/utils/mono-mmap.h>
+#include <mono/utils/mono-threads.h>
+#include <mono/utils/mono-counters.h>
#include <mono/io-layer/io-layer.h>
+#endif
typedef struct {
gpointer p;
* entry data, and then sets the state to USED or FREE.
*/
+#include <string.h>
+
#include <mono/utils/atomic.h>
#include <mono/utils/mono-membar.h>
+#ifdef SGEN_WITHOUT_MONO
+#include <mono/metadata/sgen-gc.h>
+#include <mono/metadata/sgen-client.h>
+#else
#include <mono/utils/mono-mmap.h>
+#endif
#include <mono/utils/lock-free-array-queue.h>
#define __MONO_BITSET_H__
#include <glib.h>
+#ifdef SGEN_WITHOUT_MONO
+#include "mono/utils/mono-compiler.h"
+#define MONO_API
+#else
#include <mono/utils/mono-publib.h>
+#endif
/*
* When embedding, you have to define MONO_ZERO_LEN_ARRAY before including any