Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
[mono.git] / mono / metadata / appdomain.h
index 211aaf1af3d31973706daf32ea9328bb6cc020ba..0521857919e6b9bccc77197d0c208e89549117d4 100644 (file)
@@ -17,6 +17,7 @@
 #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 {
@@ -57,14 +58,16 @@ typedef struct _MonoAppDomain MonoAppDomain;
 
 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;
 };
@@ -77,9 +80,18 @@ struct _MonoAppDomain {
 
 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);
 
@@ -96,7 +108,7 @@ 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);