X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2Fmarshal.h;h=cedb32c3512784051a466f369076c1ca3ebba60e;hb=b0eff411fcc55fa6a7bbc5ee97bb592fe3204309;hp=60c4f0deb2b2ed2c24b8084d6b48f528cfcf1e9a;hpb=e5aa23189bfdb75e36528e491537ec26ca0fc0c0;p=mono.git diff --git a/mono/metadata/marshal.h b/mono/metadata/marshal.h index 60c4f0deb2b..cedb32c3512 100644 --- a/mono/metadata/marshal.h +++ b/mono/metadata/marshal.h @@ -18,6 +18,8 @@ #include #include +G_BEGIN_DECLS + typedef struct _MonoMethodBuilder MonoMethodBuilder; /* marshaling helper functions */ @@ -32,11 +34,11 @@ MonoMarshalType * mono_marshal_load_type_info (MonoClass* klass); gint32 -mono_marshal_type_size (MonoType *type, MonoMarshalSpec *mspec, gint32 *align, +mono_marshal_type_size (MonoType *type, MonoMarshalSpec *mspec, guint32 *align, gboolean as_field, gboolean unicode); int -mono_type_native_stack_size (MonoType *type, int *alignment); +mono_type_native_stack_size (MonoType *type, guint32 *alignment); gpointer mono_array_to_savearray (MonoArray *array); @@ -74,11 +76,7 @@ mono_delegate_to_ftnptr (MonoDelegate *delegate); MonoDelegate* mono_ftnptr_to_delegate (MonoClass *klass, gpointer ftn); -void * -mono_marshal_string_array (MonoArray *array); - -void * -mono_marshal_string_array_to_unicode (MonoArray *array); +void mono_delegate_free_ftnptr (MonoDelegate *delegate); void mono_marshal_set_last_error (void); @@ -168,6 +166,12 @@ mono_marshal_method_from_wrapper (MonoMethod *wrapper); MonoMethod * mono_marshal_get_remoting_invoke (MonoMethod *method); +MonoMethod * +mono_marshal_get_xappdomain_invoke (MonoMethod *method); + +MonoMethod * +mono_marshal_get_remoting_invoke_for_target (MonoMethod *method, MonoRemotingTarget target_type); + MonoMethod * mono_marshal_get_remoting_invoke_with_check (MonoMethod *method); @@ -184,7 +188,7 @@ MonoMethod * mono_marshal_get_runtime_invoke (MonoMethod *method); MonoMethod * -mono_marshal_get_managed_wrapper (MonoMethod *method, MonoObject *this, MonoMarshalSpec **mspecs); +mono_marshal_get_managed_wrapper (MonoMethod *method, MonoClass *delegate_klass, MonoObject *this); MonoMethod * mono_marshal_get_icall_wrapper (MonoMethodSignature *sig, const char *name, gconstpointer func); @@ -192,6 +196,9 @@ mono_marshal_get_icall_wrapper (MonoMethodSignature *sig, const char *name, gcon MonoMethod * mono_marshal_get_native_wrapper (MonoMethod *method); +MonoMethod * +mono_marshal_get_native_func_wrapper (MonoMethodSignature *sig, MonoMethodPInvoke *piinfo, MonoMarshalSpec **mspecs, gpointer func); + MonoMethod * mono_marshal_get_struct_to_ptr (MonoClass *klass); @@ -204,9 +211,18 @@ mono_marshal_get_stfld_wrapper (MonoType *type); MonoMethod * mono_marshal_get_ldfld_wrapper (MonoType *type); +MonoMethod * +mono_marshal_get_ldfld_remote_wrapper (MonoClass *klass); + +MonoMethod * +mono_marshal_get_stfld_remote_wrapper (MonoClass *klass); + MonoMethod * mono_marshal_get_synchronized_wrapper (MonoMethod *method); +MonoMethod * +mono_marshal_get_unbox_wrapper (MonoMethod *method); + MonoMethod * mono_marshal_get_isinst (MonoClass *klass); @@ -216,10 +232,13 @@ mono_marshal_get_castclass (MonoClass *klass); MonoMethod * mono_marshal_get_proxy_cancast (MonoClass *klass); +MonoMethod * +mono_marshal_get_stelemref (void); + /* marshaling internal calls */ void * -mono_marshal_alloc (gpointer size); +mono_marshal_alloc (gulong size); void mono_marshal_free (gpointer ptr); @@ -316,8 +335,19 @@ ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem (int size); void ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem (void *ptr); +void* +ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal (int size); + +void +ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal (void *ptr); + void* ves_icall_System_Runtime_InteropServices_Marshal_UnsafeAddrOfPinnedArrayElement (MonoArray *arrayobj, int index); +MonoDelegate* +ves_icall_System_Runtime_InteropServices_Marshal_GetDelegateForFunctionPointerInternal (void *ftn, MonoReflectionType *type); + +G_END_DECLS + #endif /* __MONO_MARSHAL_H__ */