projects
/
mono.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge pull request #5714 from alexischr/update_bockbuild
[mono.git]
/
mono
/
metadata
/
marshal.h
diff --git
a/mono/metadata/marshal.h
b/mono/metadata/marshal.h
index d3c0a2b051762f2ec82b4f7b8095a053f78c9e9b..12f224d2dedc8883498b8dae679350aee1b192aa 100644
(file)
--- a/
mono/metadata/marshal.h
+++ b/
mono/metadata/marshal.h
@@
-1,6
+1,6
@@
-
-/*
- *
marshal.h:
Routines for marshaling complex types in P/Invoke methods.
+/**
+ * \file
+ * Routines for marshaling complex types in P/Invoke methods.
*
* Author:
* Paolo Molaro (lupus@ximian.com)
*
* Author:
* Paolo Molaro (lupus@ximian.com)
@@
-121,6
+121,7
@@
typedef enum {
/* Subtypes of MONO_WRAPPER_UNKNOWN */
WRAPPER_SUBTYPE_GSHAREDVT_IN_SIG,
WRAPPER_SUBTYPE_GSHAREDVT_OUT_SIG,
/* Subtypes of MONO_WRAPPER_UNKNOWN */
WRAPPER_SUBTYPE_GSHAREDVT_IN_SIG,
WRAPPER_SUBTYPE_GSHAREDVT_OUT_SIG,
+ WRAPPER_SUBTYPE_INTERP_IN
} WrapperSubtype;
typedef struct {
} WrapperSubtype;
typedef struct {
@@
-191,6
+192,14
@@
typedef struct {
MonoMethodSignature *sig;
} GsharedvtWrapperInfo;
MonoMethodSignature *sig;
} GsharedvtWrapperInfo;
+typedef struct {
+ MonoMethod *method;
+} DelegateInvokeWrapperInfo;
+
+typedef struct {
+ MonoMethodSignature *sig;
+} InterpInWrapperInfo;
+
/*
* 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
/*
* 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
+240,10
@@
typedef struct {
RemotingWrapperInfo remoting;
/* GSHAREDVT_IN_SIG/GSHAREDVT_OUT_SIG */
GsharedvtWrapperInfo gsharedvt;
RemotingWrapperInfo remoting;
/* GSHAREDVT_IN_SIG/GSHAREDVT_OUT_SIG */
GsharedvtWrapperInfo gsharedvt;
+ /* DELEGATE_INVOKE */
+ DelegateInvokeWrapperInfo delegate_invoke;
+ /* INTERP_IN */
+ InterpInWrapperInfo interp_in;
} d;
} WrapperInfo;
} d;
} WrapperInfo;
@@
-269,7
+282,10
@@
gpointer
mono_string_to_ansibstr (MonoString *string_obj);
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);
void mono_delegate_free_ftnptr (MonoDelegate *delegate);
@@
-308,6
+324,9
@@
mono_marshal_get_delegate_invoke (MonoMethod *method, MonoDelegate *del);
MonoMethod *
mono_marshal_get_delegate_invoke_internal (MonoMethod *method, gboolean callvirt, gboolean static_method_with_first_arg_bound, MonoMethod *target_method);
MonoMethod *
mono_marshal_get_delegate_invoke_internal (MonoMethod *method, gboolean callvirt, gboolean static_method_with_first_arg_bound, MonoMethod *target_method);
+MonoMethod *
+mono_marshal_get_runtime_invoke_full (MonoMethod *method, gboolean virtual_, gboolean need_direct_wrapper);
+
MonoMethod *
mono_marshal_get_runtime_invoke (MonoMethod *method, gboolean is_virtual);
MonoMethod *
mono_marshal_get_runtime_invoke (MonoMethod *method, gboolean is_virtual);
@@
-321,7
+340,7
@@
MonoMethodSignature*
mono_marshal_get_string_ctor_signature (MonoMethod *method);
MonoMethod *
mono_marshal_get_string_ctor_signature (MonoMethod *method);
MonoMethod *
-mono_marshal_get_managed_wrapper (MonoMethod *method, MonoClass *delegate_klass, uint32_t this_loc);
+mono_marshal_get_managed_wrapper (MonoMethod *method, MonoClass *delegate_klass, uint32_t this_loc
, MonoError *exernal_error
);
gpointer
mono_marshal_get_vtfixup_ftnptr (MonoImage *image, guint32 token, guint16 type);
gpointer
mono_marshal_get_vtfixup_ftnptr (MonoImage *image, guint32 token, guint16 type);
@@
-359,12
+378,6
@@
mono_marshal_get_castclass_with_cache (void);
MonoMethod *
mono_marshal_get_isinst_with_cache (void);
MonoMethod *
mono_marshal_get_isinst_with_cache (void);
-MonoMethod *
-mono_marshal_get_isinst (MonoClass *klass);
-
-MonoMethod *
-mono_marshal_get_castclass (MonoClass *klass);
-
MonoMethod *
mono_marshal_get_stelemref (void);
MonoMethod *
mono_marshal_get_stelemref (void);
@@
-381,8
+394,7
@@
MonoMethod *
mono_marshal_get_array_accessor_wrapper (MonoMethod *method);
MonoMethod *
mono_marshal_get_array_accessor_wrapper (MonoMethod *method);
MonoMethod *
-mono_marshal_get_generic_array_helper (MonoClass *klass, MonoClass *iface,
- gchar *name, MonoMethod *method);
+mono_marshal_get_generic_array_helper (MonoClass *klass, gchar *name, MonoMethod *method);
MonoMethod *
mono_marshal_get_thunk_invoke_wrapper (MonoMethod *method);
MonoMethod *
mono_marshal_get_thunk_invoke_wrapper (MonoMethod *method);
@@
-405,7
+417,7
@@
mono_marshal_unlock_internal (void);
/* marshaling internal calls */
void *
/* marshaling internal calls */
void *
-mono_marshal_alloc (g
ulong
size, MonoError *error);
+mono_marshal_alloc (g
size
size, MonoError *error);
void
mono_marshal_free (gpointer ptr);
void
mono_marshal_free (gpointer ptr);
@@
-427,8
+439,8
@@
void
ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged (gpointer src, gint32 start_index,
MonoArray *dest, gint32 length);
ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged (gpointer src, gint32 start_index,
MonoArray *dest, gint32 length);
-MonoString
*
-ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi (char *ptr);
+MonoString
Handle
+ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi (char *ptr
, MonoError *error
);
MonoString *
ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len (char *ptr, gint32 len);
MonoString *
ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len (char *ptr, gint32 len);
@@
-449,7
+461,7
@@
guint32
ves_icall_System_Runtime_InteropServices_Marshal_GetLastWin32Error (void);
guint32
ves_icall_System_Runtime_InteropServices_Marshal_GetLastWin32Error (void);
guint32
-ves_icall_System_Runtime_InteropServices_Marshal_SizeOf (MonoReflectionType
*rtype
);
+ves_icall_System_Runtime_InteropServices_Marshal_SizeOf (MonoReflectionType
Handle rtype, MonoError *error
);
void
ves_icall_System_Runtime_InteropServices_Marshal_StructureToPtr (MonoObject *obj, gpointer dst, MonoBoolean delete_old);
void
ves_icall_System_Runtime_InteropServices_Marshal_StructureToPtr (MonoObject *obj, gpointer dst, MonoBoolean delete_old);
@@
-461,11
+473,14
@@
MonoObject *
ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type (gpointer src, MonoReflectionType *type);
int
ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type (gpointer src, MonoReflectionType *type);
int
-ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf (MonoReflectionType
*type, MonoString *field_name
);
+ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf (MonoReflectionType
Handle type, MonoStringHandle field_name, MonoError *error
);
gpointer
ves_icall_System_Runtime_InteropServices_Marshal_StringToBSTR (MonoString *string);
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);
gpointer
ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi (MonoString *string);
@@
-478,6
+493,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_AllocCoTaskMem (int size);
+void*
+ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMemSize (gulong size);
+
void
ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem (void *ptr);
void
ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem (void *ptr);
@@
-499,11
+517,11
@@
ves_icall_System_Runtime_InteropServices_Marshal_FreeBSTR (void *ptr);
void*
ves_icall_System_Runtime_InteropServices_Marshal_UnsafeAddrOfPinnedArrayElement (MonoArray *arrayobj, int index);
void*
ves_icall_System_Runtime_InteropServices_Marshal_UnsafeAddrOfPinnedArrayElement (MonoArray *arrayobj, int index);
-MonoDelegate
*
-ves_icall_System_Runtime_InteropServices_Marshal_GetDelegateForFunctionPointerInternal (void *ftn, MonoReflectionType
*type
);
+MonoDelegate
Handle
+ves_icall_System_Runtime_InteropServices_Marshal_GetDelegateForFunctionPointerInternal (void *ftn, MonoReflectionType
Handle type, MonoError *error
);
gpointer
gpointer
-ves_icall_System_Runtime_InteropServices_Marshal_GetFunctionPointerForDelegateInternal (MonoDelegate
*delegate
);
+ves_icall_System_Runtime_InteropServices_Marshal_GetFunctionPointerForDelegateInternal (MonoDelegate
Handle delegate, MonoError *error
);
int
ves_icall_System_Runtime_InteropServices_Marshal_AddRefInternal (gpointer pUnk);
int
ves_icall_System_Runtime_InteropServices_Marshal_AddRefInternal (gpointer pUnk);