X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2Fmarshal.h;h=58caa69d814f5d57e74a6fb176aba6cff0248004;hb=c5cdfaec1e0973ced3f97ef589cd0bece56067ad;hp=494ff3d435ef5dbdbc99385fa2f90eea8ee6f162;hpb=b21767e01caefe05ad063ddc28afecd0b5b78b04;p=mono.git diff --git a/mono/metadata/marshal.h b/mono/metadata/marshal.h index 494ff3d435e..58caa69d814 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,20 @@ 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); +mono_ptr_to_bstr (gpointer ptr, int slen); gpointer -mono_delegate_to_ftnptr (MonoDelegate *delegate); - -MonoDelegate* -mono_ftnptr_to_delegate (MonoClass *klass, gpointer ftn); +mono_string_to_bstr(MonoString* str); 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 +408,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); @@ -503,6 +469,9 @@ ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf (MonoReflectionType *t gpointer ves_icall_System_Runtime_InteropServices_Marshal_StringToBSTR (MonoString *string); +gpointer +ves_icall_System_Runtime_InteropServices_Marshal_BufferToBSTR (MonoArray *ptr, int len); + gpointer ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi (MonoString *string); @@ -539,6 +508,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 +599,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 +619,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__ */