X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2Fmarshal.h;h=58caa69d814f5d57e74a6fb176aba6cff0248004;hb=c5cdfaec1e0973ced3f97ef589cd0bece56067ad;hp=6ef4f19390c42ea57651626f4f62bb758a24f361;hpb=8b4240cd17c9d5c2be169a25ecdff17f3155d93c;p=mono.git diff --git a/mono/metadata/marshal.h b/mono/metadata/marshal.h index 6ef4f19390c..58caa69d814 100644 --- a/mono/metadata/marshal.h +++ b/mono/metadata/marshal.h @@ -39,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 */ @@ -264,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); @@ -504,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); @@ -540,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); @@ -628,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); @@ -645,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__ */