X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2Fappdomain.h;h=f2ee91f8ee730884303f8d5197cbaa3fc1fb0b39;hb=dd866d68820e0f66046256bb5d3f84e3988a8be0;hp=1bd35859f967b0be762eefa3c746eaa2696b1383;hpb=389d8b96ebb1ec6d335ca915d89102ab43203fb2;p=mono.git diff --git a/mono/metadata/appdomain.h b/mono/metadata/appdomain.h index 1bd35859f96..f2ee91f8ee7 100644 --- a/mono/metadata/appdomain.h +++ b/mono/metadata/appdomain.h @@ -15,159 +15,158 @@ #include #include #include -#include -#include - -typedef void (*MonoThreadStartCB) (gpointer stack_start); - -/* 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; - union { - guint32 token; - gpointer filter; - } data; -} MonoJitExceptionInfo; - -typedef struct { - MonoMethod *method; - gpointer code_start; - int code_size; - guint32 used_regs; - unsigned num_clauses; - MonoJitExceptionInfo *clauses; -} MonoJitInfo; + +typedef void (*MonoThreadStartCB) (guint32 tid, gpointer stack_start, + gpointer func); +typedef void (*MonoThreadAttachCB) (guint32 tid, gpointer stack_start); typedef struct _MonoAppDomain MonoAppDomain; +typedef struct _MonoAppContext MonoAppContext; +typedef struct _MonoJitInfo MonoJitInfo; -struct _MonoDomain { - MonoAppDomain *domain; - CRITICAL_SECTION lock; - MonoMemPool *mp; - MonoMemPool *code_mp; - MonoGHashTable *env; - GHashTable *assemblies; - MonoAppDomainSetup *setup; - 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; - /* hashtables for Reflection handles */ - MonoGHashTable *type_hash; - MonoGHashTable *refobject_hash; -}; - -/* This is a copy of System.AppDomain */ -struct _MonoAppDomain { - MonoObject object; - MonoDomain *data; -}; - -extern MonoDomain *mono_root_domain; - -extern HANDLE mono_delegate_semaphore; -extern CRITICAL_SECTION mono_delegate_section; -extern int mono_runtime_shutdown; - -#define mono_domain_lock(domain) EnterCriticalSection(&(domain)->lock) -#define mono_domain_unlock(domain) LeaveCriticalSection(&(domain)->lock) +typedef void (*MonoDomainFunc) (MonoDomain *domain, gpointer user_data); MonoDomain* mono_init (const char *filename); +MonoDomain* +mono_get_root_domain (void); + void -mono_runtime_init (MonoDomain *domain, MonoThreadStartCB start_cb); +mono_runtime_init (MonoDomain *domain, MonoThreadStartCB start_cb, + MonoThreadAttachCB attach_cb); void mono_runtime_cleanup (MonoDomain *domain); +void +mono_runtime_install_cleanup (MonoDomainFunc func); + +void +mono_runtime_quit (void); + +gboolean +mono_runtime_is_shutting_down (void); + +const char* +mono_check_corlib_version (void); + MonoDomain * mono_domain_create (void); inline MonoDomain * mono_domain_get (void); +inline MonoDomain * +mono_domain_get_by_id (gint32 domainid); + +gint32 +mono_domain_get_id (MonoDomain *domain); + +inline gboolean +mono_domain_set (MonoDomain *domain, gboolean force); + inline void -mono_domain_set (MonoDomain *domain); +mono_domain_set_internal (MonoDomain *domain); + +gboolean +mono_domain_is_unloading (MonoDomain *domain); + +void +mono_domain_foreach (MonoDomainFunc func, gpointer user_data); MonoAssembly * mono_domain_assembly_open (MonoDomain *domain, const char *name); +gboolean +mono_domain_finalize (MonoDomain *domain, guint32 timeout); + void -mono_domain_unload (MonoDomain *domain, gboolean force); +mono_domain_free (MonoDomain *domain, gboolean force); + +gboolean +mono_domain_has_type_resolve (MonoDomain *domain); + +MonoReflectionAssembly * +mono_domain_try_type_resolve (MonoDomain *domain, char *name, MonoObject *tb); void -mono_jit_info_table_add (MonoDomain *domain, MonoJitInfo *ji); +mono_context_init (MonoDomain *domain); + +inline void +mono_context_set (MonoAppContext *new_context); + +inline MonoAppContext * +mono_context_get (void); MonoJitInfo * mono_jit_info_table_find (MonoDomain *domain, char *addr); -void -ves_icall_System_AppDomainSetup_InitAppDomainSetup (MonoAppDomainSetup *setup); +MonoImage* +mono_get_corlib (void); -MonoAppDomain * -ves_icall_System_AppDomain_getCurDomain (void); +MonoClass* +mono_get_object_class (void); -MonoAppDomain * -ves_icall_System_AppDomain_createDomain (MonoString *friendly_name, - MonoAppDomainSetup *setup); +MonoClass* +mono_get_byte_class (void); -MonoObject * -ves_icall_System_AppDomain_GetData (MonoAppDomain *ad, - MonoString *name); +MonoClass* +mono_get_void_class (void); -void -ves_icall_System_AppDomain_SetData (MonoAppDomain *ad, - MonoString *name, - MonoObject *data); +MonoClass* +mono_get_boolean_class (void); -MonoAppDomainSetup * -ves_icall_System_AppDomain_getSetup (MonoAppDomain *ad); +MonoClass* +mono_get_sbyte_class (void); -MonoString * -ves_icall_System_AppDomain_getFriendlyName (MonoAppDomain *ad); +MonoClass* +mono_get_int16_class (void); -MonoArray * -ves_icall_System_AppDomain_GetAssemblies (MonoAppDomain *ad); +MonoClass* +mono_get_uint16_class (void); -MonoReflectionAssembly * -ves_icall_System_Reflection_Assembly_LoadFrom (MonoString *fname); +MonoClass* +mono_get_int32_class (void); -MonoReflectionAssembly * -ves_icall_System_AppDomain_LoadAssembly (MonoAppDomain *ad, - MonoReflectionAssemblyName *assRef, - MonoObject *evidence); +MonoClass* +mono_get_uint32_class (void); -void -ves_icall_System_AppDomain_Unload (MonoAppDomain *ad); +MonoClass* +mono_get_intptr_class (void); -gint32 -ves_icall_System_AppDomain_ExecuteAssembly (MonoAppDomain *ad, - MonoString *file, - MonoObject *evidence, - MonoArray *args); +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); #endif /* _MONO_METADATA_APPDOMAIN_H_ */ +