X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2Fmarshal.h;h=d3c0a2b051762f2ec82b4f7b8095a053f78c9e9b;hb=aef549e364e3d7b1c8959900a99852fec39bc3a2;hp=494ff3d435ef5dbdbc99385fa2f90eea8ee6f162;hpb=e9efdb6b4c9e6077da8c5be2cfd313b20873939d;p=mono.git diff --git a/mono/metadata/marshal.h b/mono/metadata/marshal.h index 494ff3d435e..d3c0a2b0517 100644 --- a/mono/metadata/marshal.h +++ b/mono/metadata/marshal.h @@ -19,6 +19,7 @@ #include #include #include +#include #define mono_marshal_find_bitfield_offset(type, elem, byte_offset, bitmask) \ do { \ @@ -38,6 +39,7 @@ typedef struct { MonoMethodPInvoke *piinfo; int *orig_conv_args; /* Locals containing the original values of byref args */ int retobj_var; + int vtaddr_var; MonoClass *retobj_class; MonoMethodSignature *csig; /* Might need to be changed due to MarshalAs directives */ MonoImage *image; /* The image to use for looking up custom marshallers */ @@ -263,56 +265,17 @@ mono_marshal_type_size (MonoType *type, MonoMarshalSpec *mspec, guint32 *align, int mono_type_native_stack_size (MonoType *type, guint32 *alignment); -gpointer -mono_array_to_savearray (MonoArray *array); - -gpointer -mono_array_to_lparray (MonoArray *array); - -void -mono_free_lparray (MonoArray *array, gpointer* nativeArray); - -void -mono_string_utf8_to_builder (MonoStringBuilder *sb, char *text); - -void -mono_string_utf16_to_builder (MonoStringBuilder *sb, gunichar2 *text); - -gchar* -mono_string_builder_to_utf8 (MonoStringBuilder *sb); - -gunichar2* -mono_string_builder_to_utf16 (MonoStringBuilder *sb); - gpointer mono_string_to_ansibstr (MonoString *string_obj); gpointer mono_string_to_bstr (MonoString *string_obj); -void -mono_string_to_byvalstr (gpointer dst, MonoString *src, int size); - -void -mono_string_to_byvalwstr (gpointer dst, MonoString *src, int size); - -gpointer -mono_delegate_to_ftnptr (MonoDelegate *delegate); - -MonoDelegate* -mono_ftnptr_to_delegate (MonoClass *klass, gpointer ftn); - void mono_delegate_free_ftnptr (MonoDelegate *delegate); void mono_marshal_set_last_error (void); -gpointer -mono_marshal_asany (MonoObject *obj, MonoMarshalNative string_encoding, int param_attrs); - -void -mono_marshal_free_asany (MonoObject *o, gpointer ptr, MonoMarshalNative string_encoding, int param_attrs); - guint mono_type_to_ldind (MonoType *type); @@ -442,7 +405,7 @@ mono_marshal_unlock_internal (void); /* marshaling internal calls */ void * -mono_marshal_alloc (gulong size); +mono_marshal_alloc (gulong size, MonoError *error); void mono_marshal_free (gpointer ptr); @@ -539,6 +502,9 @@ ves_icall_System_Runtime_InteropServices_Marshal_UnsafeAddrOfPinnedArrayElement MonoDelegate* ves_icall_System_Runtime_InteropServices_Marshal_GetDelegateForFunctionPointerInternal (void *ftn, MonoReflectionType *type); +gpointer +ves_icall_System_Runtime_InteropServices_Marshal_GetFunctionPointerForDelegateInternal (MonoDelegate *delegate); + int ves_icall_System_Runtime_InteropServices_Marshal_AddRefInternal (gpointer pUnk); @@ -627,7 +593,10 @@ void mono_marshal_use_aot_wrappers (gboolean use); MonoObject * -mono_marshal_xdomain_copy_value (MonoObject *val); +mono_marshal_xdomain_copy_value (MonoObject *val, MonoError *error); + +MonoObject * +ves_icall_mono_marshal_xdomain_copy_value (MonoObject *val); int mono_mb_emit_save_args (MonoMethodBuilder *mb, MonoMethodSignature *sig, gboolean save_this); @@ -644,6 +613,11 @@ mono_mb_create_and_cache_full (GHashTable *cache, gpointer key, MonoMethodBuilder *mb, MonoMethodSignature *sig, int max_stack, WrapperInfo *info, gboolean *out_found); +typedef void (*MonoFtnPtrEHCallback) (guint32 gchandle); + +MONO_API void +mono_install_ftnptr_eh_callback (MonoFtnPtrEHCallback callback); + G_END_DECLS #endif /* __MONO_MARSHAL_H__ */