X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2Fmarshal.h;h=e22653f2d5bd2f1538e4c02e1f451bca53a067b2;hb=0a53e226313b2e89dd05272ea403994561067a78;hp=818aea36d2ae5485c3f6332b0d0fd8aa27be77a6;hpb=3e69ff3ae72acec33c471236da49ed6c78b26dc4;p=mono.git diff --git a/mono/metadata/marshal.h b/mono/metadata/marshal.h index 818aea36d2a..e22653f2d5b 100644 --- a/mono/metadata/marshal.h +++ b/mono/metadata/marshal.h @@ -191,6 +191,10 @@ typedef struct { MonoMethodSignature *sig; } GsharedvtWrapperInfo; +typedef struct { + MonoMethod *method; +} DelegateInvokeWrapperInfo; + /* * This structure contains additional information to uniquely identify a given wrapper * method. It can be retrieved by mono_marshal_get_wrapper_info () for certain types @@ -231,6 +235,8 @@ typedef struct { RemotingWrapperInfo remoting; /* GSHAREDVT_IN_SIG/GSHAREDVT_OUT_SIG */ GsharedvtWrapperInfo gsharedvt; + /* DELEGATE_INVOKE */ + DelegateInvokeWrapperInfo delegate_invoke; } d; } WrapperInfo; @@ -269,7 +275,10 @@ gpointer mono_string_to_ansibstr (MonoString *string_obj); gpointer -mono_string_to_bstr (MonoString *string_obj); +mono_ptr_to_bstr (gpointer ptr, int slen); + +gpointer +mono_string_to_bstr(MonoString* str); void mono_delegate_free_ftnptr (MonoDelegate *delegate); @@ -466,6 +475,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); @@ -478,6 +490,9 @@ ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure (gpointer src, void* ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem (int size); +void* +ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMemSize (gulong size); + void ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem (void *ptr); @@ -593,7 +608,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); @@ -610,6 +628,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__ */