X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2Fobject-internals.h;h=df479b861b6f39786ca239e60447e870a50397d9;hb=036d915f04e05dedfe6f3a8ea636a90d24451538;hp=406073f36e8387995491cab4c75cb562fc2c135d;hpb=4944a6315ce073f878c0aec2a8ca780d326be322;p=mono.git diff --git a/mono/metadata/object-internals.h b/mono/metadata/object-internals.h index 406073f36e8..df479b861b6 100644 --- a/mono/metadata/object-internals.h +++ b/mono/metadata/object-internals.h @@ -2,6 +2,7 @@ #define __MONO_OBJECT_INTERNALS_H__ #include +#include #include #include #include @@ -262,7 +263,7 @@ struct _MonoThread { gpointer suspend_event; gpointer suspended_event; gpointer resume_event; - MonoObject *synch_lock; + CRITICAL_SECTION *synch_cs; guint8* serialized_culture_info; guint32 serialized_culture_info_len; guint8* serialized_ui_culture_info; @@ -279,7 +280,7 @@ struct _MonoThread { gssize small_id; /* A small, unique id, used for the hazard pointer table. Should be changed to a guint32 at the next corlib version bump. */ - gpointer unused6; + MonoThreadManageCallback manage_callback; gpointer unused7; }; @@ -526,6 +527,7 @@ struct _MonoDelegate { gpointer method_ptr; gpointer invoke_impl; MonoObject *target; + MonoMethod *method; MonoObject *target_type; MonoString *method_name; gpointer delegate_trampoline; @@ -935,7 +937,7 @@ typedef struct { typedef struct _MonoReflectionGenericClass MonoReflectionGenericClass; struct _MonoReflectionGenericClass { MonoReflectionType type; - MonoReflectionType *generic_type; + MonoReflectionTypeBuilder *generic_type; guint32 initialized; }; @@ -952,6 +954,7 @@ typedef struct { MonoArray *keyToken; guint32 versioncompat; MonoObject *version; + guint32 processor_architecture; } MonoReflectionAssemblyName; typedef struct { @@ -1027,8 +1030,16 @@ typedef struct { MonoReflectionType *return_type; guint32 call_conv; guint32 unmanaged_call_conv; + MonoArray *modreqs; + MonoArray *modopts; } MonoReflectionSigHelper; +typedef struct { + MonoObject object; + MonoReflectionGenericClass *inst; + MonoReflectionFieldBuilder *fb; +} MonoReflectionFieldOnTypeBuilderInst; + enum { RESOURCE_LOCATION_EMBEDDED = 1, RESOURCE_LOCATION_ANOTHER_ASSEMBLY = 2, @@ -1063,6 +1074,8 @@ guint32 mono_image_insert_string (MonoReflectionModuleBuilder *module, Mon guint32 mono_image_create_token (MonoDynamicImage *assembly, MonoObject *obj, gboolean create_methodspec) MONO_INTERNAL; guint32 mono_image_create_method_token (MonoDynamicImage *assembly, MonoObject *obj, MonoArray *opt_param_types) MONO_INTERNAL; void mono_image_module_basic_init (MonoReflectionModuleBuilder *module) MONO_INTERNAL; +void mono_image_register_token (MonoDynamicImage *assembly, guint32 token, MonoObject *obj) MONO_INTERNAL; +void mono_dynamic_image_free (MonoDynamicImage *image) MONO_INTERNAL; void mono_reflection_setup_internal_class (MonoReflectionTypeBuilder *tb) MONO_INTERNAL; @@ -1099,11 +1112,14 @@ MonoArray *mono_reflection_sighelper_get_signature_field (MonoReflectionSigHelp MonoReflectionMarshal* mono_reflection_marshal_from_marshal_spec (MonoDomain *domain, MonoClass *klass, MonoMarshalSpec *spec) MONO_INTERNAL; gpointer -mono_reflection_lookup_dynamic_token (MonoImage *image, guint32 token, MonoClass **handle_class, MonoGenericContext *context) MONO_INTERNAL; +mono_reflection_lookup_dynamic_token (MonoImage *image, guint32 token, gboolean valid_token, MonoClass **handle_class, MonoGenericContext *context) MONO_INTERNAL; gboolean mono_reflection_call_is_assignable_to (MonoClass *klass, MonoClass *oklass) MONO_INTERNAL; +gboolean +mono_reflection_is_valid_dynamic_token (MonoDynamicImage *image, guint32 token) MONO_INTERNAL; + void mono_image_build_metadata (MonoReflectionModuleBuilder *module) MONO_INTERNAL; @@ -1128,6 +1144,9 @@ mono_remote_class_vtable (MonoDomain *domain, MonoRemoteClass *remote_class, Mon void mono_upgrade_remote_class (MonoDomain *domain, MonoObject *tproxy, MonoClass *klass) MONO_INTERNAL; +gpointer +mono_create_ftnptr (MonoDomain *domain, gpointer addr) MONO_INTERNAL; + gpointer mono_get_addr_from_ftnptr (gpointer descr) MONO_INTERNAL; @@ -1165,6 +1184,15 @@ typedef gpointer (*MonoImtThunkBuilder) (MonoVTable *vtable, MonoDomain *domain, void mono_install_imt_thunk_builder (MonoImtThunkBuilder func) MONO_INTERNAL; +void +mono_install_imt_trampoline (gpointer tramp) MONO_INTERNAL; + +void +mono_install_vtable_trampoline (gpointer tramp) MONO_INTERNAL; + +void +mono_vtable_build_imt_slot (MonoVTable* vtable, int imt_slot) MONO_INTERNAL; + guint32 mono_method_get_imt_slot (MonoMethod *method) MONO_INTERNAL;