#include <mono/metadata/reflection.h>
#include <mono/metadata/mempool.h>
#include <mono/utils/mono-hash.h>
+#include <mono/io-layer/io-layer.h>
/* This is a copy of System.AppDomainSetup */
typedef struct {
struct _MonoDomain {
MonoAppDomain *domain;
+ CRITICAL_SECTION lock;
MonoMemPool *mp;
GHashTable *env;
GHashTable *assemblies;
MonoAppDomainSetup *setup;
- MonoString *friendly_name;
+ char* *friendly_name;
MonoGHashTable *ldstr_table;
MonoGHashTable *class_vtable_hash;
MonoGHashTable *proxy_vtable_hash;
+ MonoGHashTable *static_data_hash;
GHashTable *jit_code_hash;
MonoJitInfoTable *jit_info_table;
};
extern MonoDomain *mono_root_domain;
-MonoDomain *
+#define mono_domain_lock(domain) EnterCriticalSection(&(domain)->lock)
+#define mono_domain_unlock(domain) LeaveCriticalSection(&(domain)->lock)
+
+MonoDomain*
mono_init (const char *filename);
+void
+mono_runtime_init (MonoDomain *domain);
+
+MonoDomain *
+mono_domain_create (void);
+
inline MonoDomain *
mono_domain_get (void);
mono_jit_info_table_add (MonoDomain *domain, MonoJitInfo *ji);
MonoJitInfo *
-mono_jit_info_table_find (MonoDomain *domain, gpointer addr);
+mono_jit_info_table_find (MonoDomain *domain, char *addr);
void
ves_icall_System_AppDomainSetup_InitAppDomainSetup (MonoAppDomainSetup *setup);