X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2Fobject-internals.h;h=3266ad17a5c8f5aaf34bad942bdc40b169abc820;hb=1e982a83223207df5929053f4f47f68753f43730;hp=e99831bf80eadcd48e4690d4f0cd508e7db484d0;hpb=f41146afe9b3c007c9e6dd9350936e3e8333b753;p=mono.git diff --git a/mono/metadata/object-internals.h b/mono/metadata/object-internals.h index e99831bf80e..3266ad17a5c 100644 --- a/mono/metadata/object-internals.h +++ b/mono/metadata/object-internals.h @@ -3,7 +3,9 @@ #include #include +#include #include +#include "mono/utils/mono-compiler.h" #if 1 #ifdef __GNUC__ @@ -149,7 +151,8 @@ typedef struct { MonoObject *async_state; MonoObject *handle; MonoObject *async_delegate; - gpointer data; + gpointer *data; + MonoObject *object_data; MonoBoolean sync_completed; MonoBoolean completed; MonoBoolean endinvoke_called; @@ -184,8 +187,21 @@ typedef struct { MonoObject *unwrapped_server; gint32 target_domain_id; MonoString *target_uri; + MonoObject *object_identity; + MonoObject *obj_TP; + MonoObject *stub_data; } MonoRealProxy; +typedef struct { + MonoRealProxy real_proxy; + MonoObject *com_object; +} MonoComInteropProxy; + +typedef struct { + MonoMarshalByRefObject object; + GHashTable* itf_hash; +} MonoComObject; + typedef struct { MonoObject object; MonoRealProxy *rp; @@ -255,7 +271,7 @@ struct _MonoThread { */ MonoBoolean thread_dump_requested; gpointer end_stack; /* This is only used when running in the debugger. */ - gpointer unused3; + MonoBoolean thread_interrupt_requested; gpointer unused4; gpointer unused5; gpointer unused6; @@ -391,6 +407,11 @@ typedef struct { gint32 lcid; } MonoSortKey; +typedef struct { + MonoObject object; + guint16 intType; +} MonoInterfaceTypeAttribute; + /* used to free a dynamic method */ typedef void (*MonoFreeMethodFunc) (MonoDomain *domain, MonoMethod *method); @@ -401,71 +422,77 @@ typedef gboolean (*MonoInitVTableFunc) (MonoVTable *vtable); MonoAsyncResult * mono_async_result_new (MonoDomain *domain, HANDLE handle, - MonoObject *state, gpointer data); + MonoObject *state, gpointer data, MonoObject *object_data) MONO_INTERNAL; MonoWaitHandle * -mono_wait_handle_new (MonoDomain *domain, HANDLE handle); +mono_wait_handle_new (MonoDomain *domain, HANDLE handle) MONO_INTERNAL; + +HANDLE +mono_wait_handle_get_handle (MonoWaitHandle *handle) MONO_INTERNAL; void mono_message_init (MonoDomain *domain, MonoMethodMessage *this_obj, - MonoReflectionMethod *method, MonoArray *out_args); + MonoReflectionMethod *method, MonoArray *out_args) MONO_INTERNAL; MonoObject * mono_remoting_invoke (MonoObject *real_proxy, MonoMethodMessage *msg, - MonoObject **exc, MonoArray **out_args); + MonoObject **exc, MonoArray **out_args) MONO_INTERNAL; MonoObject * mono_message_invoke (MonoObject *target, MonoMethodMessage *msg, - MonoObject **exc, MonoArray **out_args); + MonoObject **exc, MonoArray **out_args) MONO_INTERNAL; MonoMethodMessage * mono_method_call_message_new (MonoMethod *method, gpointer *params, MonoMethod *invoke, - MonoDelegate **cb, MonoObject **state); + MonoDelegate **cb, MonoObject **state) MONO_INTERNAL; void -mono_method_return_message_restore (MonoMethod *method, gpointer *params, MonoArray *out_args); +mono_method_return_message_restore (MonoMethod *method, gpointer *params, MonoArray *out_args) MONO_INTERNAL; void -mono_delegate_ctor (MonoObject *this_obj, MonoObject *target, gpointer addr); +mono_delegate_ctor (MonoObject *this_obj, MonoObject *target, gpointer addr) MONO_INTERNAL; void* -mono_class_get_allocation_ftn (MonoVTable *vtable, gboolean for_box, gboolean *pass_size_in_words); +mono_class_get_allocation_ftn (MonoVTable *vtable, gboolean for_box, gboolean *pass_size_in_words) MONO_INTERNAL; void -mono_runtime_free_method (MonoDomain *domain, MonoMethod *method); +mono_runtime_free_method (MonoDomain *domain, MonoMethod *method) MONO_INTERNAL; /* runtime initialization functions */ typedef void (*MonoExceptionFunc) (MonoException *ex); void -mono_install_handler (MonoExceptionFunc func); +mono_install_handler (MonoExceptionFunc func) MONO_INTERNAL; void -mono_install_runtime_invoke (MonoInvokeFunc func); +mono_install_runtime_invoke (MonoInvokeFunc func) MONO_INTERNAL; void -mono_install_compile_method (MonoCompileFunc func); +mono_install_compile_method (MonoCompileFunc func) MONO_INTERNAL; + +void +mono_install_free_method (MonoFreeMethodFunc func) MONO_INTERNAL; void -mono_install_free_method (MonoFreeMethodFunc func); +mono_install_init_vtable (MonoInitVTableFunc func) MONO_INTERNAL; void -mono_install_init_vtable (MonoInitVTableFunc func); +mono_type_initialization_init (void) MONO_INTERNAL; void -mono_type_initialization_init (void); +mono_type_initialization_cleanup (void) MONO_INTERNAL; guint32 -mono_thread_get_tls_key (void); +mono_thread_get_tls_key (void) MONO_INTERNAL; gint32 -mono_thread_get_tls_offset (void); +mono_thread_get_tls_offset (void) MONO_INTERNAL; guint32 -mono_domain_get_tls_key (void); +mono_domain_get_tls_key (void) MONO_INTERNAL; gint32 -mono_domain_get_tls_offset (void); +mono_domain_get_tls_offset (void) MONO_INTERNAL; /* Reflection and Reflection.Emit support */ @@ -755,6 +782,7 @@ typedef struct { MonoString *filename; guint32 attrs; guint32 offset; + MonoObject *stream; } MonoReflectionResource; typedef struct { @@ -1010,85 +1038,85 @@ typedef enum { GENERIC_PARAMETER_ATTRIBUTE_SPECIAL_CONSTRAINTS_MASK = 28 } GenericParameterAttributes; -void mono_image_create_pefile (MonoReflectionModuleBuilder *module, HANDLE file); -void mono_image_basic_init (MonoReflectionAssemblyBuilder *assembly); -MonoReflectionModule * mono_image_load_module (MonoReflectionAssemblyBuilder *assembly, MonoString *file_name); -guint32 mono_image_insert_string (MonoReflectionModuleBuilder *module, MonoString *str); -guint32 mono_image_create_token (MonoDynamicImage *assembly, MonoObject *obj, gboolean create_methodspec); -guint32 mono_image_create_method_token (MonoDynamicImage *assembly, MonoObject *obj, MonoArray *opt_param_types); -void mono_image_module_basic_init (MonoReflectionModuleBuilder *module); +void mono_image_create_pefile (MonoReflectionModuleBuilder *module, HANDLE file) MONO_INTERNAL; +void mono_image_basic_init (MonoReflectionAssemblyBuilder *assembly) MONO_INTERNAL; +MonoReflectionModule * mono_image_load_module (MonoReflectionAssemblyBuilder *assembly, MonoString *file_name) MONO_INTERNAL; +guint32 mono_image_insert_string (MonoReflectionModuleBuilder *module, MonoString *str) MONO_INTERNAL; +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_reflection_setup_internal_class (MonoReflectionTypeBuilder *tb); +void mono_reflection_setup_internal_class (MonoReflectionTypeBuilder *tb) MONO_INTERNAL; -void mono_reflection_create_internal_class (MonoReflectionTypeBuilder *tb); +void mono_reflection_create_internal_class (MonoReflectionTypeBuilder *tb) MONO_INTERNAL; -void mono_reflection_setup_generic_class (MonoReflectionTypeBuilder *tb); +void mono_reflection_setup_generic_class (MonoReflectionTypeBuilder *tb) MONO_INTERNAL; -void mono_reflection_create_generic_class (MonoReflectionTypeBuilder *tb); +void mono_reflection_create_generic_class (MonoReflectionTypeBuilder *tb) MONO_INTERNAL; -MonoReflectionType* mono_reflection_create_runtime_class (MonoReflectionTypeBuilder *tb); +MonoReflectionType* mono_reflection_create_runtime_class (MonoReflectionTypeBuilder *tb) MONO_INTERNAL; -void mono_reflection_get_dynamic_overrides (MonoClass *klass, MonoMethod ***overrides, int *num_overrides); +void mono_reflection_get_dynamic_overrides (MonoClass *klass, MonoMethod ***overrides, int *num_overrides) MONO_INTERNAL; -void mono_reflection_create_dynamic_method (MonoReflectionDynamicMethod *m); +void mono_reflection_create_dynamic_method (MonoReflectionDynamicMethod *m) MONO_INTERNAL; -void mono_reflection_initialize_generic_parameter (MonoReflectionGenericParam *gparam); +void mono_reflection_initialize_generic_parameter (MonoReflectionGenericParam *gparam) MONO_INTERNAL; MonoType* -mono_class_bind_generic_parameters (MonoType *type, int type_argc, MonoType **types); +mono_class_bind_generic_parameters (MonoType *type, int type_argc, MonoType **types) MONO_INTERNAL; MonoType* -mono_reflection_bind_generic_parameters (MonoReflectionType *type, int type_argc, MonoType **types); +mono_reflection_bind_generic_parameters (MonoReflectionType *type, int type_argc, MonoType **types) MONO_INTERNAL; MonoReflectionMethod* -mono_reflection_bind_generic_method_parameters (MonoReflectionMethod *method, MonoArray *types); +mono_reflection_bind_generic_method_parameters (MonoReflectionMethod *method, MonoArray *types) MONO_INTERNAL; void -mono_reflection_generic_class_initialize (MonoReflectionGenericClass *type, MonoArray *methods, MonoArray *ctors, MonoArray *fields, MonoArray *properties, MonoArray *events); +mono_reflection_generic_class_initialize (MonoReflectionGenericClass *type, MonoArray *methods, MonoArray *ctors, MonoArray *fields, MonoArray *properties, MonoArray *events) MONO_INTERNAL; MonoReflectionEvent * -mono_reflection_event_builder_get_event_info (MonoReflectionTypeBuilder *tb, MonoReflectionEventBuilder *eb); +mono_reflection_event_builder_get_event_info (MonoReflectionTypeBuilder *tb, MonoReflectionEventBuilder *eb) MONO_INTERNAL; -MonoArray *mono_reflection_sighelper_get_signature_local (MonoReflectionSigHelper *sig); +MonoArray *mono_reflection_sighelper_get_signature_local (MonoReflectionSigHelper *sig) MONO_INTERNAL; -MonoArray *mono_reflection_sighelper_get_signature_field (MonoReflectionSigHelper *sig); +MonoArray *mono_reflection_sighelper_get_signature_field (MonoReflectionSigHelper *sig) MONO_INTERNAL; -MonoReflectionMarshal* mono_reflection_marshal_from_marshal_spec (MonoDomain *domain, MonoClass *klass, MonoMarshalSpec *spec); +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); +mono_reflection_lookup_dynamic_token (MonoImage *image, guint32 token, MonoClass **handle_class) MONO_INTERNAL; gboolean -mono_reflection_call_is_assignable_to (MonoClass *klass, MonoClass *oklass); +mono_reflection_call_is_assignable_to (MonoClass *klass, MonoClass *oklass) MONO_INTERNAL; void -mono_image_build_metadata (MonoReflectionModuleBuilder *module); +mono_image_build_metadata (MonoReflectionModuleBuilder *module) MONO_INTERNAL; int -mono_get_constant_value_from_blob (MonoDomain* domain, MonoTypeEnum type, const char *blob, void *value); +mono_get_constant_value_from_blob (MonoDomain* domain, MonoTypeEnum type, const char *blob, void *value) MONO_INTERNAL; void -mono_release_type_locks (MonoThread *thread); +mono_release_type_locks (MonoThread *thread) MONO_INTERNAL; + +char * +mono_string_to_utf8_mp (MonoMemPool *mp, MonoString *s) MONO_INTERNAL; MonoArray* -mono_array_clone_in_domain (MonoDomain *domain, MonoArray *array); +mono_array_clone_in_domain (MonoDomain *domain, MonoArray *array) MONO_INTERNAL; void -mono_array_full_copy (MonoArray *src, MonoArray *dest); +mono_array_full_copy (MonoArray *src, MonoArray *dest) MONO_INTERNAL; gpointer -mono_remote_class_vtable (MonoDomain *domain, MonoRemoteClass *remote_class, MonoRealProxy *real_proxy); - -MonoMethodSignature* -mono_method_get_signature_full (MonoMethod *method, MonoImage *image, guint32 token, MonoGenericContext *context); +mono_remote_class_vtable (MonoDomain *domain, MonoRemoteClass *remote_class, MonoRealProxy *real_proxy) MONO_INTERNAL; void -mono_upgrade_remote_class (MonoDomain *domain, MonoObject *tproxy, MonoClass *klass); +mono_upgrade_remote_class (MonoDomain *domain, MonoObject *tproxy, MonoClass *klass) MONO_INTERNAL; gpointer -mono_get_addr_from_ftnptr (gpointer descr); +mono_get_addr_from_ftnptr (gpointer descr) MONO_INTERNAL; void -mono_nullable_init (guint8 *buf, MonoObject *value, MonoClass *klass); +mono_nullable_init (guint8 *buf, MonoObject *value, MonoClass *klass) MONO_INTERNAL; MonoObject* -mono_nullable_box (guint8 *buf, MonoClass *klass); +mono_nullable_box (guint8 *buf, MonoClass *klass) MONO_INTERNAL; #endif /* __MONO_OBJECT_INTERNALS_H__ */