X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2Fmetadata.h;h=1c611f430070d99e83fc233d765162e3dcbffa6f;hb=d455c0d23462d34352e4accd9953b1f487351c7f;hp=35afec7e3eac6f0a4eea92c57f7aededa9b4c917;hpb=08a728d237965feb2bbd485f909998b17c0bbb11;p=mono.git diff --git a/mono/metadata/metadata.h b/mono/metadata/metadata.h index 35afec7e3ea..1c611f43007 100644 --- a/mono/metadata/metadata.h +++ b/mono/metadata/metadata.h @@ -15,9 +15,9 @@ MONO_BEGIN_DECLS #define MONO_TYPE_IS_POINTER(t) mono_type_is_pointer (t) #define MONO_TYPE_IS_REFERENCE(t) mono_type_is_reference (t) -#define MONO_CLASS_IS_INTERFACE(c) ((c->flags & TYPE_ATTRIBUTE_INTERFACE) || (c->byval_arg.type == MONO_TYPE_VAR) || (c->byval_arg.type == MONO_TYPE_MVAR)) +#define MONO_CLASS_IS_INTERFACE(c) ((mono_class_get_flags (c) & TYPE_ATTRIBUTE_INTERFACE) || (c->byval_arg.type == MONO_TYPE_VAR) || (c->byval_arg.type == MONO_TYPE_MVAR)) -#define MONO_CLASS_IS_IMPORT(c) ((c->flags & TYPE_ATTRIBUTE_IMPORT)) +#define MONO_CLASS_IS_IMPORT(c) ((mono_class_get_flags (c) & TYPE_ATTRIBUTE_IMPORT)) typedef struct _MonoClass MonoClass; typedef struct _MonoDomain MonoDomain; @@ -76,6 +76,9 @@ typedef enum { MONO_NATIVE_LPSTRUCT = 0x2b, MONO_NATIVE_CUSTOM = 0x2c, MONO_NATIVE_ERROR = 0x2d, + // TODO: MONO_NATIVE_IINSPECTABLE = 0x2e + // TODO: MONO_NATIVE_HSTRING = 0x2f + MONO_NATIVE_UTF8STR = 0x30, MONO_NATIVE_MAX = 0x50 /* no info */ } MonoMarshalNative; @@ -162,7 +165,12 @@ typedef enum { MONO_MARSHAL_FREE_ARRAY, MONO_MARSHAL_CONV_BSTR_STR, MONO_MARSHAL_CONV_SAFEHANDLE, - MONO_MARSHAL_CONV_HANDLEREF + MONO_MARSHAL_CONV_HANDLEREF, + MONO_MARSHAL_CONV_STR_UTF8STR, + MONO_MARSHAL_CONV_SB_UTF8STR, + MONO_MARSHAL_CONV_UTF8STR_STR, + MONO_MARSHAL_CONV_UTF8STR_SB, + MONO_MARSHAL_CONV_FIXED_BUFFER } MonoMarshalConv; #define MONO_MARSHAL_CONV_INVALID ((MonoMarshalConv)-1) @@ -284,7 +292,6 @@ typedef struct { typedef struct _MonoType MonoType; typedef struct _MonoGenericInst MonoGenericInst; typedef struct _MonoGenericClass MonoGenericClass; -typedef struct _MonoDynamicGenericClass MonoDynamicGenericClass; typedef struct _MonoGenericContext MonoGenericContext; typedef struct _MonoGenericContainer MonoGenericContainer; typedef struct _MonoGenericParam MonoGenericParam; @@ -301,7 +308,10 @@ typedef struct { struct _MonoArrayType { MonoClass *eklass; + // Number of dimensions of the array uint8_t rank; + + // Arrays recording known upper and lower index bounds for each dimension uint8_t numsizes; uint8_t numlobounds; int *sizes; @@ -347,6 +357,7 @@ MONO_API mono_bool mono_type_is_struct (MonoType *type); MONO_API mono_bool mono_type_is_void (MonoType *type); MONO_API mono_bool mono_type_is_pointer (MonoType *type); MONO_API mono_bool mono_type_is_reference (MonoType *type); +mono_bool mono_type_is_generic_parameter (MonoType *type); MONO_API MonoType* mono_signature_get_return_type (MonoMethodSignature *sig); @@ -422,6 +433,7 @@ MONO_API MonoMethodSignature *mono_metadata_signature_alloc (MonoImage *image, MONO_API MonoMethodSignature *mono_metadata_signature_dup (MonoMethodSignature *sig); +MONO_RT_EXTERNAL_ONLY MONO_API MonoMethodSignature *mono_metadata_parse_signature (MonoImage *image, uint32_t token); @@ -479,6 +491,8 @@ MONO_API uint32_t mono_metadata_token_from_dor (uint32_t dor_index); MONO_API char *mono_guid_to_string (const uint8_t *guid); +MONO_API char *mono_guid_to_string_minimal (const uint8_t *guid); + MONO_API uint32_t mono_metadata_declsec_from_index (MonoImage *meta, uint32_t idx); MONO_API uint32_t mono_metadata_translate_token_index (MonoImage *image, int table, uint32_t idx);