Switch to compiler-tester
[mono.git] / mono / metadata / appdomain.h
index a0eee6830a1326fe5bbe166db0f0e4d629099841..f5d20d8b022f03e43f1d46f79b26158803a11c2c 100644 (file)
 #ifndef _MONO_METADATA_APPDOMAIN_H_
 #define _MONO_METADATA_APPDOMAIN_H_
 
-#include <config.h>
 #include <glib.h>
 
 #include <mono/metadata/object.h>
 #include <mono/metadata/reflection.h>
 #include <mono/metadata/mempool.h>
-#include <mono/utils/mono-hash.h>
-
-/* This is a copy of System.AppDomainSetup */
-typedef struct {
-       MonoObject object;
-       MonoString *application_base;
-       MonoString *application_name;
-       MonoString *cache_path;
-       MonoString *configuration_file;
-       MonoString *dynamic_base;
-       MonoString *license_file;
-       MonoString *private_bin_path;
-       MonoString *private_bin_path_probe;
-       MonoString *shadow_copy_directories;
-       MonoString *shadow_copy_files;
-       MonoBoolean publisher_policy;
-} MonoAppDomainSetup;
-
-typedef GArray MonoJitInfoTable;
-
-typedef struct {
-       guint32  flags;
-       gpointer try_start;
-       gpointer try_end;
-       gpointer handler_start;
-       guint32  token_or_filter;
-} MonoJitExceptionInfo;
-
-typedef struct {
-       MonoMethod *method;
-       gpointer    code_start;
-       int         code_size;
-       guint32     used_regs;
-       unsigned    num_clauses;
-       MonoJitExceptionInfo *clauses;
-} MonoJitInfo;
+
+G_BEGIN_DECLS
+
+typedef void (*MonoThreadStartCB) (guint32 tid, gpointer stack_start,
+                                  gpointer func);
+typedef void (*MonoThreadAttachCB) (guint32 tid, gpointer stack_start);
 
 typedef struct _MonoAppDomain MonoAppDomain;
+typedef struct _MonoJitInfo MonoJitInfo;
 
-struct _MonoDomain {
-       MonoAppDomain      *domain;
-       MonoMemPool        *mp;
-       GHashTable         *env;
-       GHashTable         *assemblies;
-       MonoAppDomainSetup *setup;
-       MonoString         *friendly_name;
-       MonoGHashTable     *ldstr_table;
-       MonoGHashTable     *class_vtable_hash;
-       MonoGHashTable     *proxy_vtable_hash;
-       GHashTable         *jit_code_hash;
-       MonoJitInfoTable   *jit_info_table;
-};
-
-/* This is a copy of System.AppDomain */
-struct _MonoAppDomain {
-       MonoObject  object;
-       MonoDomain *data;
-};
-
-extern MonoDomain *mono_root_domain;
+typedef void (*MonoDomainFunc) (MonoDomain *domain, gpointer user_data);
 
-MonoDomain *
+MonoDomain*
 mono_init                  (const char *filename);
 
-inline MonoDomain *
-mono_domain_get            (void);
+MonoDomain *
+mono_init_from_assembly    (const char *domain_name, const char *filename);
 
-inline void
-mono_domain_set            (MonoDomain *domain);
+MonoDomain *
+mono_init_version          (const char *domain_name, const char *version);
 
-MonoAssembly *
-mono_domain_assembly_open  (MonoDomain *domain, char *name);
+MonoDomain*
+mono_get_root_domain       (void);
 
 void
-mono_domain_unload         (MonoDomain *domain, gboolean force);
+mono_runtime_init          (MonoDomain *domain, MonoThreadStartCB start_cb,
+                           MonoThreadAttachCB attach_cb);
 
 void
-mono_jit_info_table_add    (MonoDomain *domain, MonoJitInfo *ji);
+mono_runtime_cleanup       (MonoDomain *domain);
 
-MonoJitInfo *
-mono_jit_info_table_find   (MonoDomain *domain, char *addr);
+void
+mono_install_runtime_cleanup (MonoDomainFunc func);
 
 void
-ves_icall_System_AppDomainSetup_InitAppDomainSetup (MonoAppDomainSetup *setup);
+mono_runtime_quit (void);
+
+void
+mono_runtime_set_shutting_down (void);
+
+gboolean
+mono_runtime_is_shutting_down (void);
+
+const char*
+mono_check_corlib_version (void);
 
-MonoAppDomain *
-ves_icall_System_AppDomain_getCurDomain            (void);
+MonoDomain *
+mono_domain_create         (void);
+
+MonoDomain *
+mono_domain_get            (void);
+
+MonoDomain *
+mono_domain_get_by_id      (gint32 domainid);
+
+gint32
+mono_domain_get_id         (MonoDomain *domain);
+
+gboolean
+mono_domain_set            (MonoDomain *domain, gboolean force);
 
-MonoAppDomain *
-ves_icall_System_AppDomain_createDomain            (MonoString         *friendly_name,
-                                                   MonoAppDomainSetup *setup);
+void
+mono_domain_set_internal   (MonoDomain *domain);
 
-MonoObject *
-ves_icall_System_AppDomain_GetData                 (MonoAppDomain *ad, 
-                                                   MonoString    *name);
+gboolean
+mono_domain_is_unloading   (MonoDomain *domain);
 
 void
-ves_icall_System_AppDomain_SetData                 (MonoAppDomain *ad, 
-                                                   MonoString    *name, 
-                                                   MonoObject    *data);
+mono_domain_foreach        (MonoDomainFunc func, gpointer user_data);
 
-MonoAppDomainSetup *
-ves_icall_System_AppDomain_getSetup                (MonoAppDomain *ad);
+MonoAssembly *
+mono_domain_assembly_open  (MonoDomain *domain, const char *name);
 
-MonoString *
-ves_icall_System_AppDomain_getFriendlyName         (MonoAppDomain *ad);
+gboolean
+mono_domain_finalize       (MonoDomain *domain, guint32 timeout);
 
-MonoArray *
-ves_icall_System_AppDomain_GetAssemblies           (MonoAppDomain *ad);
+void
+mono_domain_free           (MonoDomain *domain, gboolean force);
+
+gboolean
+mono_domain_has_type_resolve (MonoDomain *domain);
 
 MonoReflectionAssembly *
-ves_icall_System_AppDomain_LoadAssembly            (MonoAppDomain *ad, 
-                                                   MonoReflectionAssemblyName *assRef,
-                                                   MonoObject    *evidence);
+mono_domain_try_type_resolve (MonoDomain *domain, char *name, MonoObject *tb);
+
+gboolean
+mono_domain_owns_vtable_slot (MonoDomain *domain, gpointer vtable_slot);
 
 void
-ves_icall_System_AppDomain_Unload                  (MonoAppDomain *ad);
+mono_context_init                                 (MonoDomain *domain);
 
-gint32
-ves_icall_System_AppDomain_ExecuteAssembly         (MonoAppDomain *ad, 
-                                                   MonoString    *file, 
-                                                   MonoObject    *evidence,
-                                                   MonoArray     *args);
+void 
+mono_context_set                                  (MonoAppContext *new_context);
+
+MonoAppContext * 
+mono_context_get                                  (void);
+
+MonoJitInfo *
+mono_jit_info_table_find   (MonoDomain *domain, char *addr);
+
+MonoImage*
+mono_get_corlib            (void);
+
+MonoClass*
+mono_get_object_class      (void);
+
+MonoClass*
+mono_get_byte_class        (void);
+
+MonoClass*
+mono_get_void_class        (void);
+
+MonoClass*
+mono_get_boolean_class     (void);
+
+MonoClass*
+mono_get_sbyte_class       (void);
+
+MonoClass*
+mono_get_int16_class       (void);
+
+MonoClass*
+mono_get_uint16_class      (void);
+
+MonoClass*
+mono_get_int32_class       (void);
 
+MonoClass*
+mono_get_uint32_class      (void);
+
+MonoClass*
+mono_get_intptr_class         (void);
+
+MonoClass*
+mono_get_uintptr_class        (void);
+
+MonoClass*
+mono_get_int64_class       (void);
+
+MonoClass*
+mono_get_uint64_class      (void);
+
+MonoClass*
+mono_get_single_class      (void);
+
+MonoClass*
+mono_get_double_class      (void);
+
+MonoClass*
+mono_get_char_class        (void);
+
+MonoClass*
+mono_get_string_class      (void);
+
+MonoClass*
+mono_get_enum_class        (void);
+
+MonoClass*
+mono_get_array_class       (void);
+
+MonoClass*
+mono_get_thread_class       (void);
+
+MonoClass*
+mono_get_exception_class    (void);
+
+G_END_DECLS
 #endif /* _MONO_METADATA_APPDOMAIN_H_ */
+