1 #ifndef __MONO_OBJECT_INTERNALS_H__
2 #define __MONO_OBJECT_INTERNALS_H__
4 #include <mono/metadata/object.h>
5 #include <mono/metadata/reflection.h>
6 #include <mono/metadata/mempool.h>
7 #include <mono/io-layer/io-layer.h>
11 #define mono_assert(expr) G_STMT_START{ \
15 char *msg = g_strdup_printf ("file %s: line %d (%s): " \
16 "assertion failed: (%s)", __FILE__, __LINE__, \
17 __PRETTY_FUNCTION__, #expr); \
18 ex = mono_get_exception_execution_engine (msg); \
20 mono_raise_exception (ex); \
23 #define mono_assert_not_reached() G_STMT_START{ \
25 char *msg = g_strdup_printf ("file %s: line %d (%s): " \
26 "should not be reached", __FILE__, __LINE__, __PRETTY_FUNCTION__); \
27 ex = mono_get_exception_execution_engine (msg); \
29 mono_raise_exception (ex); \
32 #define mono_assert(expr) G_STMT_START{ \
36 char *msg = g_strdup_printf ("file %s: line %d: " \
37 "assertion failed: (%s)", __FILE__, __LINE__, \
39 ex = mono_get_exception_execution_engine (msg); \
41 mono_raise_exception (ex); \
44 #define mono_assert_not_reached() G_STMT_START{ \
46 char *msg = g_strdup_printf ("file %s: line %d): " \
47 "should not be reached", __FILE__, __LINE__); \
48 ex = mono_get_exception_execution_engine (msg); \
50 mono_raise_exception (ex); \
54 #define mono_assert(expr) g_assert(expr)
55 #define mono_assert_not_reached() g_assert_not_reached()
58 #define MONO_CHECK_ARG(arg, expr) G_STMT_START{ \
62 char *msg = g_strdup_printf ("assertion `%s' failed", \
64 if (arg) {} /* check if the name exists */ \
65 ex = mono_get_exception_argument (#arg, msg); \
67 mono_raise_exception (ex); \
70 #define MONO_CHECK_ARG_NULL(arg) G_STMT_START{ \
74 if (arg) {} /* check if the name exists */ \
75 ex = mono_get_exception_argument_null (#arg); \
76 mono_raise_exception (ex); \
80 /* 16 == default capacity */
81 #define mono_stringbuilder_capacity(sb) ((sb)->str ? ((sb)->str->length) : 16)
86 } MonoMarshalByRefObject;
88 /* This is a copy of System.AppDomain */
89 struct _MonoAppDomain {
90 MonoMarshalByRefObject mbr;
98 MonoString *cached_str;
110 } MonoArgumentHandle;
113 MonoMethodSignature *sig;
119 struct _MonoException {
121 MonoArray *trace_ips;
122 MonoObject *inner_ex;
124 MonoString *help_link;
125 MonoString *class_name;
126 MonoString *stack_trace;
127 MonoString *remote_stack_trace;
128 gint32 remote_stack_index;
135 } MonoSystemException;
138 MonoSystemException base;
139 MonoString *param_name;
140 } MonoArgumentException;
143 MonoSystemException base;
145 MonoString *type_name;
146 } MonoTypeLoadException;
150 MonoObject *async_state;
152 MonoObject *async_delegate;
154 MonoObject *object_data;
155 MonoBoolean sync_completed;
156 MonoBoolean completed;
157 MonoBoolean endinvoke_called;
158 MonoObject *async_callback;
159 MonoObject *execution_context;
160 MonoObject *original_context;
164 MonoMarshalByRefObject object;
166 MonoBoolean disposed;
169 /* This is a copy of System.Runtime.Remoting.Messaging.CallType */
172 CallType_BeginInvoke = 1,
173 CallType_EndInvoke = 2,
177 struct _MonoReflectionType {
184 MonoReflectionType *class_to_proxy;
186 MonoObject *unwrapped_server;
187 gint32 target_domain_id;
188 MonoString *target_uri;
194 MonoRemoteClass *remote_class;
195 MonoBoolean custom_type_info;
196 } MonoTransparentProxy;
200 MonoReflectionMethod *method;
203 MonoArray *arg_types;
207 MonoAsyncResult *async_result;
214 gint32 native_offset;
215 MonoReflectionMethod *method;
216 MonoString *filename;
219 MonoString *internal_method_name;
224 int lock_thread_id; /* to be used as the pre-shifted thread id in thin locks */
226 MonoArray *cached_culture_info;
228 MonoBoolean threadpool_thread;
232 MonoException *abort_exc;
233 MonoObject *abort_state;
234 guint64 tid; /* This is accessed as a gsize in the code (so it can hold a 64bit pointer on systems that need it), but needs to reserve 64 bits of space on all machines as it corresponds to a field in managed code */
237 gpointer *static_data;
240 MonoAppContext *current_appcontext;
242 MonoObject *start_obj;
243 GSList *appdomain_refs;
244 MonoBoolean interruption_requested;
245 gpointer suspend_event;
246 gpointer suspended_event;
247 gpointer resume_event;
248 MonoObject *synch_lock;
249 guint8* serialized_culture_info;
250 guint32 serialized_culture_info_len;
251 guint8* serialized_ui_culture_info;
252 guint32 serialized_ui_culture_info_len;
253 MonoObject *execution_context;
255 * These fields are used to avoid having to increment corlib versions
256 * when a new field is added to the unmanaged MonoThread structure.
258 MonoBoolean thread_dump_requested;
259 gpointer end_stack; /* This is only used when running in the debugger. */
269 MonoReflectionType *type;
271 } MonoSerializationEntry;
275 MonoObject *additional;
276 } MonoStreamingContext;
280 MonoBoolean readOnly;
281 MonoString *AMDesignator;
282 MonoString *PMDesignator;
283 MonoString *DateSeparator;
284 MonoString *TimeSeparator;
285 MonoString *ShortDatePattern;
286 MonoString *LongDatePattern;
287 MonoString *ShortTimePattern;
288 MonoString *LongTimePattern;
289 MonoString *MonthDayPattern;
290 MonoString *YearMonthPattern;
291 MonoString *FullDateTimePattern;
292 MonoString *RFC1123Pattern;
293 MonoString *SortableDateTimePattern;
294 MonoString *UniversalSortableDateTimePattern;
295 guint32 FirstDayOfWeek;
296 MonoObject *Calendar;
297 guint32 CalendarWeekRule;
298 MonoArray *AbbreviatedDayNames;
300 MonoArray *MonthNames;
301 MonoArray *AbbreviatedMonthNames;
302 MonoArray *ShortDatePatterns;
303 MonoArray *LongDatePatterns;
304 MonoArray *ShortTimePatterns;
305 MonoArray *LongTimePatterns;
306 } MonoDateTimeFormatInfo;
311 MonoBoolean readOnly;
312 MonoString *decimalFormats;
313 MonoString *currencyFormats;
314 MonoString *percentFormats;
315 MonoString *digitPattern;
316 MonoString *zeroPattern;
317 gint32 currencyDecimalDigits;
318 MonoString *currencyDecimalSeparator;
319 MonoString *currencyGroupSeparator;
320 MonoArray *currencyGroupSizes;
321 gint32 currencyNegativePattern;
322 gint32 currencyPositivePattern;
323 MonoString *currencySymbol;
324 MonoString *naNSymbol;
325 MonoString *negativeInfinitySymbol;
326 MonoString *negativeSign;
327 guint32 numberDecimalDigits;
328 MonoString *numberDecimalSeparator;
329 MonoString *numberGroupSeparator;
330 MonoArray *numberGroupSizes;
331 gint32 numberNegativePattern;
332 gint32 percentDecimalDigits;
333 MonoString *percentDecimalSeparator;
334 MonoString *percentGroupSeparator;
335 MonoArray *percentGroupSizes;
336 gint32 percentNegativePattern;
337 gint32 percentPositivePattern;
338 MonoString *percentSymbol;
339 MonoString *perMilleSymbol;
340 MonoString *positiveInfinitySymbol;
341 MonoString *positiveSign;
342 } MonoNumberFormatInfo;
347 MonoString *icu_name;
348 gpointer ICU_collator;
353 MonoBoolean is_read_only;
356 gint32 specific_lcid;
357 gint32 datetime_index;
359 MonoBoolean use_user_override;
360 MonoNumberFormatInfo *number_format;
361 MonoDateTimeFormatInfo *datetime_format;
362 MonoObject *textinfo;
364 MonoString *displayname;
365 MonoString *englishname;
366 MonoString *nativename;
367 MonoString *iso3lang;
368 MonoString *iso2lang;
369 MonoString *icu_name;
370 MonoString *win3lang;
371 MonoCompareInfo *compareinfo;
372 const gint32 *calendar_data;
373 const void* text_info_data;
379 MonoString *iso2name;
380 MonoString *iso3name;
381 MonoString *win3name;
382 MonoString *english_name;
383 MonoString *currency_symbol;
384 MonoString *iso_currency_symbol;
385 MonoString *currency_english_name;
399 } MonoInterfaceTypeAttribute;
401 /* used to free a dynamic method */
402 typedef void (*MonoFreeMethodFunc) (MonoDomain *domain, MonoMethod *method);
404 /* Used to initialize the method pointers inside vtables */
405 typedef gboolean (*MonoInitVTableFunc) (MonoVTable *vtable);
407 /* remoting and async support */
410 mono_async_result_new (MonoDomain *domain, HANDLE handle,
411 MonoObject *state, gpointer data, MonoObject *object_data);
414 mono_wait_handle_new (MonoDomain *domain, HANDLE handle);
417 mono_message_init (MonoDomain *domain, MonoMethodMessage *this_obj,
418 MonoReflectionMethod *method, MonoArray *out_args);
421 mono_remoting_invoke (MonoObject *real_proxy, MonoMethodMessage *msg,
422 MonoObject **exc, MonoArray **out_args);
425 mono_message_invoke (MonoObject *target, MonoMethodMessage *msg,
426 MonoObject **exc, MonoArray **out_args);
429 mono_method_call_message_new (MonoMethod *method, gpointer *params, MonoMethod *invoke,
430 MonoDelegate **cb, MonoObject **state);
433 mono_method_return_message_restore (MonoMethod *method, gpointer *params, MonoArray *out_args);
436 mono_delegate_ctor (MonoObject *this_obj, MonoObject *target, gpointer addr);
439 mono_class_get_allocation_ftn (MonoVTable *vtable, gboolean for_box, gboolean *pass_size_in_words);
442 mono_runtime_free_method (MonoDomain *domain, MonoMethod *method);
444 /* runtime initialization functions */
445 typedef void (*MonoExceptionFunc) (MonoException *ex);
448 mono_install_handler (MonoExceptionFunc func);
451 mono_install_runtime_invoke (MonoInvokeFunc func);
454 mono_install_compile_method (MonoCompileFunc func);
457 mono_install_free_method (MonoFreeMethodFunc func);
460 mono_install_init_vtable (MonoInitVTableFunc func);
463 mono_type_initialization_init (void);
466 mono_thread_get_tls_key (void);
469 mono_thread_get_tls_offset (void);
472 mono_domain_get_tls_key (void);
475 mono_domain_get_tls_offset (void);
477 /* Reflection and Reflection.Emit support */
480 * The following structure must match the C# implementation in our corlib.
483 struct _MonoReflectionMethod {
487 MonoReflectionType *reftype;
490 typedef struct _MonoReflectionGenericMethod MonoReflectionGenericMethod;
491 struct _MonoReflectionGenericMethod {
492 MonoReflectionMethod method;
495 struct _MonoDelegate {
497 MonoObject *target_type;
499 MonoString *method_name;
501 gpointer delegate_trampoline;
502 MonoReflectionMethod *method_info;
505 typedef struct _MonoMulticastDelegate MonoMulticastDelegate;
506 struct _MonoMulticastDelegate {
507 MonoDelegate delegate;
508 MonoMulticastDelegate *prev;
511 struct _MonoReflectionField {
514 MonoClassField *field;
516 MonoReflectionType *type;
520 struct _MonoReflectionProperty {
523 MonoProperty *property;
526 struct _MonoReflectionEvent {
534 MonoReflectionType *ClassImpl;
535 MonoObject *DefaultValueImpl;
536 MonoObject *MemberImpl;
537 MonoString *NameImpl;
540 MonoObject *MarshalAsImpl;
541 } MonoReflectionParameter;
543 struct _MonoReflectionMethodBody {
548 MonoBoolean init_locals;
549 guint32 local_var_sig_token;
553 struct _MonoReflectionAssembly {
555 MonoAssembly *assembly;
556 MonoObject *resolve_event_holder;
558 MonoObject *evidence; /* Evidence */
559 MonoObject *minimum; /* PermissionSet - for SecurityAction.RequestMinimum */
560 MonoObject *optional; /* PermissionSet - for SecurityAction.RequestOptional */
561 MonoObject *refuse; /* PermissionSet - for SecurityAction.RequestRefuse */
562 MonoObject *granted; /* PermissionSet - for the resolved assembly granted permissions */
563 MonoObject *denied; /* PermissionSet - for the resolved assembly denied permissions */
565 MonoBoolean from_byte_array;
570 MonoReflectionType *utype;
576 MonoReflectionType *parent;
577 MonoReflectionType *ret;
584 MonoReflectionType *parent;
586 MonoReflectionMethod *get;
587 MonoReflectionMethod *set;
592 MonoReflectionType *declaring_type;
593 MonoReflectionType *reflected_type;
595 MonoReflectionMethod *add_method;
596 MonoReflectionMethod *remove_method;
597 MonoReflectionMethod *raise_method;
599 MonoArray *other_methods;
604 MonoString *name_space;
605 MonoReflectionType *etype;
606 MonoReflectionType *nested_in;
607 MonoReflectionAssembly *assembly;
609 MonoBoolean isprimitive;
615 } MonoReflectionILTokenInfo;
624 MonoArray *ex_handlers;
625 gint32 num_token_fixups;
626 MonoArray *token_fixups;
627 } MonoReflectionILGen;
634 } MonoILExceptionInfo;
637 MonoReflectionType *extype;
641 gint32 filter_offset;
642 } MonoILExceptionBlock;
646 MonoReflectionType *catch_type;
647 gint32 filter_offset;
651 gint32 handler_offset;
652 gint32 handler_length;
653 } MonoReflectionExceptionHandlingClause;
657 MonoReflectionType *local_type;
658 MonoBoolean is_pinned;
660 } MonoReflectionLocalVariableInfo;
664 * Must have the same layout as MonoReflectionLocalVariableInfo, since
665 * LocalBuilder inherits from it under net 2.0.
668 MonoReflectionType *type;
669 MonoBoolean is_pinned;
672 } MonoReflectionLocalBuilder;
681 MonoString *marshaltype;
682 MonoReflectionType *marshaltyperef;
684 MonoBoolean has_size;
685 } MonoReflectionMarshal;
692 MonoReflectionMarshal *marshal_info;
696 MonoObject *def_value;
697 } MonoReflectionParamBuilder;
702 MonoReflectionILGen *ilgen;
703 MonoArray *parameters;
711 MonoBoolean init_locals;
712 MonoArray *param_modreq;
713 MonoArray *param_modopt;
714 MonoArray *permissions;
715 } MonoReflectionCtorBuilder;
720 MonoReflectionType *rtype;
721 MonoArray *parameters;
727 MonoReflectionILGen *ilgen;
731 MonoReflectionMethod *override_method;
733 MonoString *dllentry;
738 MonoBoolean init_locals;
739 MonoGenericContainer *generic_container;
740 MonoArray *generic_params;
741 MonoArray *return_modreq;
742 MonoArray *return_modopt;
743 MonoArray *param_modreq;
744 MonoArray *param_modopt;
745 MonoArray *permissions;
746 } MonoReflectionMethodBuilder;
751 MonoReflectionType *parent;
752 MonoReflectionType *ret;
753 MonoArray *parameters;
757 } MonoReflectionArrayMethod;
762 MonoString *filename;
766 } MonoReflectionResource;
773 } MonoReflectionWin32Resource;
778 } MonoReflectionPermissionSet;
781 MonoReflectionAssembly assembly;
782 MonoDynamicAssembly *dynamic_assembly;
783 MonoReflectionMethod *entry_point;
788 MonoArray *resources;
789 MonoArray *public_key;
795 MonoBoolean delay_sign;
797 MonoArray *loaded_modules;
798 MonoArray *win32_resources;
800 MonoArray *permissions_minimum;
801 MonoArray *permissions_optional;
802 MonoArray *permissions_refused;
805 MonoBoolean corlib_internal;
806 MonoArray *type_forwarders;
807 } MonoReflectionAssemblyBuilder;
812 MonoReflectionType *type;
814 MonoObject *def_value;
817 MonoReflectionType *typeb;
820 MonoReflectionMarshal *marshal_info;
821 MonoClassField *handle;
824 } MonoReflectionFieldBuilder;
830 MonoReflectionType *type;
831 MonoArray *parameters;
833 MonoObject *def_value;
834 MonoReflectionMethodBuilder *set_method;
835 MonoReflectionMethodBuilder *get_method;
837 } MonoReflectionPropertyBuilder;
839 struct _MonoReflectionModule {
842 MonoReflectionAssembly *assembly;
845 MonoString *scopename;
846 MonoBoolean is_resource;
851 MonoReflectionModule module;
852 MonoDynamicImage *dynamic_image;
858 MonoReflectionAssemblyBuilder *assemblyb;
859 MonoArray *global_methods;
860 MonoArray *global_fields;
862 MonoArray *resources;
863 } MonoReflectionModuleBuilder;
866 MonoReflectionType type;
869 MonoReflectionType *parent;
870 MonoReflectionType *nesting_type;
871 MonoArray *interfaces;
875 MonoArray *properties;
883 MonoReflectionModuleBuilder *module;
886 MonoGenericContainer *generic_container;
887 MonoArray *generic_params;
888 MonoArray *permissions;
889 MonoReflectionType *created;
890 } MonoReflectionTypeBuilder;
893 MonoReflectionType type;
894 MonoReflectionTypeBuilder *tbuilder;
895 MonoReflectionMethodBuilder *mbuilder;
898 MonoReflectionType *base_type;
899 MonoArray *iface_constraints;
902 } MonoReflectionGenericParam;
904 typedef struct _MonoReflectionGenericClass MonoReflectionGenericClass;
905 struct _MonoReflectionGenericClass {
906 MonoReflectionType type;
907 MonoReflectionType *generic_type;
914 MonoString *codebase;
915 gint32 major, minor, build, revision;
916 MonoObject *cultureInfo;
920 MonoArray *publicKey;
922 guint32 versioncompat;
924 } MonoReflectionAssemblyName;
929 MonoReflectionType *type;
930 MonoReflectionTypeBuilder *typeb;
932 MonoReflectionMethodBuilder *add_method;
933 MonoReflectionMethodBuilder *remove_method;
934 MonoReflectionMethodBuilder *raise_method;
935 MonoArray *other_methods;
938 } MonoReflectionEventBuilder;
942 MonoReflectionMethod *ctor;
944 } MonoReflectionCustomAttr;
951 MonoString *entry_point;
952 MonoBoolean exact_spelling;
953 MonoBoolean preserve_sig;
954 MonoBoolean set_last_error;
955 MonoBoolean best_fit_mapping;
956 MonoBoolean throw_on_unmappable;
957 } MonoReflectionDllImportAttribute;
963 MonoBoolean set_last_error;
964 MonoBoolean best_fit_mapping;
965 MonoBoolean throw_on_unmappable;
966 } MonoReflectionUnmanagedFunctionPointerAttribute;
972 MonoReflectionType *rtype;
973 MonoArray *parameters;
976 MonoReflectionModule *module;
977 MonoBoolean skip_visibility;
978 MonoBoolean init_locals;
979 MonoReflectionILGen *ilgen;
982 } MonoReflectionDynamicMethod;
986 MonoReflectionModuleBuilder *module;
987 MonoArray *arguments;
989 MonoReflectionType *return_type;
991 guint32 unmanaged_call_conv;
992 } MonoReflectionSigHelper;
995 RESOURCE_LOCATION_EMBEDDED = 1,
996 RESOURCE_LOCATION_ANOTHER_ASSEMBLY = 2,
997 RESOURCE_LOCATION_IN_MANIFEST = 4
1002 MonoReflectionAssembly *assembly;
1003 MonoString *filename;
1005 } MonoManifestResourceInfo;
1007 /* Keep in sync with System.GenericParameterAttributes */
1009 GENERIC_PARAMETER_ATTRIBUTE_NON_VARIANT = 0,
1010 GENERIC_PARAMETER_ATTRIBUTE_COVARIANT = 1,
1011 GENERIC_PARAMETER_ATTRIBUTE_CONTRAVARIANT = 2,
1012 GENERIC_PARAMETER_ATTRIBUTE_VARIANCE_MASK = 3,
1014 GENERIC_PARAMETER_ATTRIBUTE_NO_SPECIAL_CONSTRAINT = 0,
1015 GENERIC_PARAMETER_ATTRIBUTE_REFERENCE_TYPE_CONSTRAINT = 4,
1016 GENERIC_PARAMETER_ATTRIBUTE_VALUE_TYPE_CONSTRAINT = 8,
1017 GENERIC_PARAMETER_ATTRIBUTE_CONSTRUCTOR_CONSTRAINT = 16,
1018 GENERIC_PARAMETER_ATTRIBUTE_SPECIAL_CONSTRAINTS_MASK = 28
1019 } GenericParameterAttributes;
1021 void mono_image_create_pefile (MonoReflectionModuleBuilder *module, HANDLE file);
1022 void mono_image_basic_init (MonoReflectionAssemblyBuilder *assembly);
1023 MonoReflectionModule * mono_image_load_module (MonoReflectionAssemblyBuilder *assembly, MonoString *file_name);
1024 guint32 mono_image_insert_string (MonoReflectionModuleBuilder *module, MonoString *str);
1025 guint32 mono_image_create_token (MonoDynamicImage *assembly, MonoObject *obj, gboolean create_methodspec);
1026 guint32 mono_image_create_method_token (MonoDynamicImage *assembly, MonoObject *obj, MonoArray *opt_param_types);
1027 void mono_image_module_basic_init (MonoReflectionModuleBuilder *module);
1029 void mono_reflection_setup_internal_class (MonoReflectionTypeBuilder *tb);
1031 void mono_reflection_create_internal_class (MonoReflectionTypeBuilder *tb);
1033 void mono_reflection_setup_generic_class (MonoReflectionTypeBuilder *tb);
1035 void mono_reflection_create_generic_class (MonoReflectionTypeBuilder *tb);
1037 MonoReflectionType* mono_reflection_create_runtime_class (MonoReflectionTypeBuilder *tb);
1039 void mono_reflection_get_dynamic_overrides (MonoClass *klass, MonoMethod ***overrides, int *num_overrides);
1041 void mono_reflection_create_dynamic_method (MonoReflectionDynamicMethod *m);
1043 void mono_reflection_initialize_generic_parameter (MonoReflectionGenericParam *gparam);
1046 mono_class_bind_generic_parameters (MonoType *type, int type_argc, MonoType **types);
1048 mono_reflection_bind_generic_parameters (MonoReflectionType *type, int type_argc, MonoType **types);
1049 MonoReflectionMethod*
1050 mono_reflection_bind_generic_method_parameters (MonoReflectionMethod *method, MonoArray *types);
1052 mono_reflection_generic_class_initialize (MonoReflectionGenericClass *type, MonoArray *methods, MonoArray *ctors, MonoArray *fields, MonoArray *properties, MonoArray *events);
1053 MonoReflectionEvent *
1054 mono_reflection_event_builder_get_event_info (MonoReflectionTypeBuilder *tb, MonoReflectionEventBuilder *eb);
1056 MonoArray *mono_reflection_sighelper_get_signature_local (MonoReflectionSigHelper *sig);
1058 MonoArray *mono_reflection_sighelper_get_signature_field (MonoReflectionSigHelper *sig);
1060 MonoReflectionMarshal* mono_reflection_marshal_from_marshal_spec (MonoDomain *domain, MonoClass *klass, MonoMarshalSpec *spec);
1063 mono_reflection_lookup_dynamic_token (MonoImage *image, guint32 token, MonoClass **handle_class);
1066 mono_reflection_call_is_assignable_to (MonoClass *klass, MonoClass *oklass);
1069 mono_image_build_metadata (MonoReflectionModuleBuilder *module);
1072 mono_get_constant_value_from_blob (MonoDomain* domain, MonoTypeEnum type, const char *blob, void *value);
1075 mono_release_type_locks (MonoThread *thread);
1078 mono_string_to_utf8_mp (MonoMemPool *mp, MonoString *s);
1081 mono_array_clone_in_domain (MonoDomain *domain, MonoArray *array);
1084 mono_array_full_copy (MonoArray *src, MonoArray *dest);
1087 mono_remote_class_vtable (MonoDomain *domain, MonoRemoteClass *remote_class, MonoRealProxy *real_proxy);
1089 MonoMethodSignature*
1090 mono_method_get_signature_full (MonoMethod *method, MonoImage *image, guint32 token, MonoGenericContext *context);
1093 mono_upgrade_remote_class (MonoDomain *domain, MonoObject *tproxy, MonoClass *klass);
1096 mono_get_addr_from_ftnptr (gpointer descr);
1099 mono_nullable_init (guint8 *buf, MonoObject *value, MonoClass *klass);
1102 mono_nullable_box (guint8 *buf, MonoClass *klass);
1104 #endif /* __MONO_OBJECT_INTERNALS_H__ */