X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2Fsre-internals.h;h=058092b6f197dc8c938749cc88a6ce4895595f43;hb=HEAD;hp=5f902cd7cc086bf64cd4957f526171ee6ac29aab;hpb=95117516f7480d8601c64edcc7d650338d1780ca;p=mono.git diff --git a/mono/metadata/sre-internals.h b/mono/metadata/sre-internals.h index 5f902cd7cc0..058092b6f19 100644 --- a/mono/metadata/sre-internals.h +++ b/mono/metadata/sre-internals.h @@ -1,4 +1,5 @@ -/* +/** + * \file * Copyright 2016 Microsoft * Licensed under the MIT license. See LICENSE file in the project root for full license information. */ @@ -7,6 +8,15 @@ #include +/* Keep in sync with System.Reflection.Emit.AssemblyBuilderAccess */ +enum MonoAssemblyBuilderAccess { + MonoAssemblyBuilderAccess_Run = 1, /* 0b0001 */ + MonoAssemblyBuilderAccess_Save = 2, /* 0b0010 */ + MonoAssemblyBuilderAccess_RunAndSave = 3, /* Run | Save */ + MonoAssemblyBuilderAccess_ReflectionOnly = 6, /* Refonly | Save */ + MonoAssemblyBuilderAccess_RunAndCollect = 9, /* Collect | Run */ +}; + typedef struct _ArrayMethod ArrayMethod; typedef struct { @@ -42,7 +52,7 @@ typedef struct { /* for PInvoke */ int charset, extra_flags, native_cc; MonoString *dll, *dllentry; -} ReflectionMethodBuilder; +} ReflectionMethodBuilder; /* FIXME raw pointers to managed objects */ void mono_reflection_emit_init (void); @@ -74,9 +84,14 @@ mono_is_sr_mono_cmethod (MonoClass *klass); gboolean mono_is_sr_mono_property (MonoClass *klass); +MonoType* +mono_reflection_type_get_handle (MonoReflectionType *ref, MonoError *error); + gpointer mono_reflection_resolve_object (MonoImage *image, MonoObject *obj, MonoClass **handle_class, MonoGenericContext *context, MonoError *error); +MonoType* mono_type_array_get_and_resolve (MonoArrayHandle array, int idx, MonoError* error); + void mono_sre_array_method_free (ArrayMethod *am); @@ -124,7 +139,7 @@ guint32 mono_dynimage_encode_typedef_or_ref_full (MonoDynamicImage *assembly, MonoType *type, gboolean try_typespec); guint32 -mono_dynimage_encode_reflection_sighelper (MonoDynamicImage *assembly, MonoReflectionSigHelper *helper, +mono_dynimage_encode_reflection_sighelper (MonoDynamicImage *assembly, MonoReflectionSigHelperHandle helper, MonoError *error); /* sre-encode, without DISABLE_REFLECTION_EMIT_SAVE (o.w. g_assert_not_reached ()) */ @@ -135,5 +150,8 @@ mono_dynimage_save_encode_marshal_blob (MonoDynamicImage *assembly, MonoReflecti guint32 mono_dynimage_save_encode_property_signature (MonoDynamicImage *assembly, MonoReflectionPropertyBuilder *fb, MonoError *error); +guint32 +mono_image_get_methodref_token (MonoDynamicImage *assembly, MonoMethod *method, gboolean create_typespec); + #endif /* __MONO_METADATA_SRE_INTERNALS_H__ */