X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2Fdomain-internals.h;h=02c3d5270359348fba84d00fbcbd87a12079e1d7;hb=08cbcd7f0261275fac6330235d9a04f285f9a759;hp=fd870617f1690f5a6ce47bc54ce9e8d81cf01e49;hpb=7a83f8380250deec2c92f33d709b62f95e3d8acb;p=mono.git diff --git a/mono/metadata/domain-internals.h b/mono/metadata/domain-internals.h index fd870617f16..02c3d527035 100644 --- a/mono/metadata/domain-internals.h +++ b/mono/metadata/domain-internals.h @@ -1,5 +1,6 @@ /* * Appdomain-related internal data structures and functions. + * Copyright 2012 Xamarin Inc (http://www.xamarin.com) */ #ifndef __MONO_METADATA_DOMAIN_INTERNALS_H__ #define __MONO_METADATA_DOMAIN_INTERNALS_H__ @@ -97,9 +98,31 @@ typedef struct { int dummy; } MonoGenericSharingContext; +/* Simplified DWARF location list entry */ +typedef struct { + /* Whenever the value is in a register */ + gboolean is_reg; + /* + * If is_reg is TRUE, the register which contains the value. Otherwise + * the base register. + */ + int reg; + /* + * If is_reg is FALSE, the offset of the stack location relative to 'reg'. + * Otherwise, 0. + */ + int offset; + /* + * Offsets of the PC interval where the value is in this location. + */ + int from, to; +} MonoDwarfLocListEntry; + typedef struct { MonoGenericSharingContext *generic_sharing_context; + int nlocs; + MonoDwarfLocListEntry *locations; gint32 this_offset; guint8 this_reg; gboolean has_this:1; @@ -147,6 +170,16 @@ typedef struct guint32 stack_size; } MonoArchEHJitInfo; +typedef struct { + gboolean cas_inited:1; + gboolean cas_class_assert:1; + gboolean cas_class_deny:1; + gboolean cas_class_permitonly:1; + gboolean cas_method_assert:1; + gboolean cas_method_deny:1; + gboolean cas_method_permitonly:1; +} MonoMethodCasInfo; + struct _MonoJitInfo { /* NOTE: These first two elements (method and next_jit_code_hash) must be in the same order and at the @@ -161,18 +194,14 @@ struct _MonoJitInfo { guint32 num_clauses:15; /* Whenever the code is domain neutral or 'shared' */ gboolean domain_neutral:1; - gboolean cas_inited:1; - gboolean cas_class_assert:1; - gboolean cas_class_deny:1; - gboolean cas_class_permitonly:1; - gboolean cas_method_assert:1; - gboolean cas_method_deny:1; - gboolean cas_method_permitonly:1; + gboolean has_cas_info:1; gboolean has_generic_jit_info:1; gboolean has_try_block_holes:1; gboolean has_arch_eh_info:1; gboolean from_aot:1; gboolean from_llvm:1; + gboolean dbg_hidden_inited:1; + gboolean dbg_hidden:1; /* FIXME: Embed this after the structure later*/ gpointer gc_info; /* Currently only used by SGen */ @@ -344,7 +373,6 @@ struct _MonoDomain { /* Used by threadpool.c */ MonoImage *system_image; - MonoImage *system_net_dll; MonoClass *corlib_asyncresult_class; MonoClass *socket_class; MonoClass *ad_unloaded_ex_class; @@ -365,7 +393,7 @@ typedef struct { typedef struct { const char runtime_version [12]; const char framework_version [4]; - const AssemblyVersionSet version_sets [3]; + const AssemblyVersionSet version_sets [4]; } MonoRuntimeInfo; #define mono_domain_lock(domain) mono_locks_acquire(&(domain)->lock, DomainLock) @@ -465,6 +493,9 @@ mono_jit_info_get_try_block_hole_table_info (MonoJitInfo *ji) MONO_INTERNAL; MonoArchEHJitInfo* mono_jit_info_get_arch_eh_info (MonoJitInfo *ji) MONO_INTERNAL; +MonoMethodCasInfo* +mono_jit_info_get_cas_info (MonoJitInfo *ji) MONO_INTERNAL; + /* * Installs a new function which is used to return a MonoJitInfo for a method inside * an AOT module.