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 */
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
RemotingWrapperInfo remoting;
/* GSHAREDVT_IN_SIG/GSHAREDVT_OUT_SIG */
GsharedvtWrapperInfo gsharedvt;
+ /* DELEGATE_INVOKE */
+ DelegateInvokeWrapperInfo delegate_invoke;
} d;
} WrapperInfo;
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);
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);
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);
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);
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);
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__ */