MonoString *shadow_copy_directories;
MonoString *shadow_copy_files;
MonoBoolean publisher_policy;
+ MonoBoolean path_changed;
} MonoAppDomainSetup;
typedef GArray MonoJitInfoTable;
guint32 used_regs;
unsigned num_clauses;
signed exvar_offset;
+ /* Whenever the code is domain neutral or 'shared' */
+ gboolean domain_neutral:1;
MonoJitExceptionInfo *clauses;
} MonoJitInfo;
+typedef struct {
+ MonoObject obj;
+ gint32 domain_id;
+ gint32 context_id;
+} MonoAppContext;
+
typedef struct _MonoAppDomain MonoAppDomain;
struct _MonoDomain {
gint32 domain_id;
/* Used when loading assemblies */
gchar **search_path;
+ /* Used by remoting proxies */
+ MonoMethod *create_proxy_for_type_method;
+ MonoMethod *private_invoke_method;
+ MonoAppContext *default_context;
+ GHashTable *thread_static_fields;
+ GHashTable *jump_target_hash;
+ MonoGHashTable *class_init_trampoline_hash;
};
/* This is a copy of System.AppDomain */
MonoDomain *data;
};
-typedef struct {
- MonoObject obj;
- gint32 domain_id;
- gint32 context_id;
-} MonoAppContext;
-
extern MonoDomain *mono_root_domain;
extern HANDLE mono_delegate_semaphore;
#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);
void
mono_runtime_cleanup (MonoDomain *domain);
+void
+mono_runtime_install_cleanup (MonoDomainFunc func);
+
+void
+mono_runtime_quit (void);
+
MonoDomain *
mono_domain_create (void);
inline void
mono_domain_set (MonoDomain *domain);
+void
+mono_domain_foreach (MonoDomainFunc func, gpointer user_data);
+
MonoAssembly *
mono_domain_assembly_open (MonoDomain *domain, const char *name);
void
mono_domain_unload (MonoDomain *domain, gboolean force);
+gboolean
+mono_domain_has_type_resolve (MonoDomain *domain);
+
MonoReflectionAssembly *
-mono_domain_try_type_resolve (MonoDomain *domain, MonoObject *name_or_tb);
+mono_domain_try_type_resolve (MonoDomain *domain, char *name, MonoObject *tb);
void
mono_jit_info_table_add (MonoDomain *domain, MonoJitInfo *ji);
MonoObject *evidence,
MonoArray *args);
+void
+mono_context_init (MonoDomain *domain);
+
inline void
mono_context_set (MonoAppContext *new_context);
MonoAppContext *
ves_icall_System_AppDomain_InternalGetContext (void);
+MonoAppContext *
+ves_icall_System_AppDomain_InternalGetDefaultContext (void);
+
MonoAppContext *
ves_icall_System_AppDomain_InternalSetContext (MonoAppContext *mc);
+gint32
+ves_icall_System_AppDomain_GetIDFromDomain (MonoAppDomain * ad);
+
+MonoString *
+ves_icall_System_AppDomain_InternalGetProcessGuid (MonoString* newguid);
+
+
#endif /* _MONO_METADATA_APPDOMAIN_H_ */