X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2Fmetadata.h;h=4fdefd49394832884e208dcc0a49ae0e570c223c;hb=d500a604e1bfd87b5e3273785fb5ea3df76acc55;hp=333458cbdeacc9dcf204fd8f68d55bfde258e563;hpb=c4aef31eeea309e6a795c84c098ac8e1a2490340;p=mono.git diff --git a/mono/metadata/metadata.h b/mono/metadata/metadata.h index 333458cbdea..4fdefd49394 100644 --- a/mono/metadata/metadata.h +++ b/mono/metadata/metadata.h @@ -31,6 +31,8 @@ G_BEGIN_DECLS #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_IMPORT(c) ((c->flags & TYPE_ATTRIBUTE_IMPORT)) + typedef struct _MonoClass MonoClass; typedef struct _MonoDomain MonoDomain; typedef struct _MonoMethod MonoMethod; @@ -161,6 +163,7 @@ typedef enum { MONO_MARSHAL_CONV_LPTSTR_SB, MONO_MARSHAL_CONV_LPWSTR_SB, MONO_MARSHAL_CONV_ARRAY_BYVALARRAY, + MONO_MARSHAL_CONV_ARRAY_BYVALCHARARRAY, MONO_MARSHAL_CONV_ARRAY_SAVEARRAY, MONO_MARSHAL_CONV_ARRAY_LPARRAY, MONO_MARSHAL_CONV_OBJECT_INTERFACE, @@ -169,7 +172,8 @@ typedef enum { MONO_MARSHAL_CONV_OBJECT_STRUCT, MONO_MARSHAL_CONV_DEL_FTN, MONO_MARSHAL_CONV_FTN_DEL, - MONO_MARSHAL_FREE_ARRAY + MONO_MARSHAL_FREE_ARRAY, + MONO_MARSHAL_CONV_BSTR_STR } MonoMarshalConv; typedef struct { @@ -259,6 +263,8 @@ guint32 mono_metadata_get_constant_index (MonoImage *meta, guint32 token, gu */ guint32 mono_metadata_decode_value (const char *ptr, const char **rptr); +gint32 mono_metadata_decode_signed_value (const char *ptr, const char **rptr); + guint32 mono_metadata_decode_blob_size (const char *ptr, const char **rptr); @@ -346,21 +352,7 @@ struct _MonoMethodSignature { MonoType *params [MONO_ZERO_LEN_ARRAY]; }; -/* - * This structure is an internal runtime detail: use the mono_method_header_* - * accessors below, because it will go away from the public header. - */ -typedef struct { - guint32 code_size; - const unsigned char *code; - guint16 max_stack; - unsigned int num_clauses : 15; - /* if num_locals != 0, then the following apply: */ - unsigned int init_locals : 1; - guint16 num_locals; - MonoExceptionClause *clauses; - MonoType *locals [MONO_ZERO_LEN_ARRAY]; -} MonoMethodHeader; +typedef struct _MonoMethodHeader MonoMethodHeader; typedef enum { MONO_PARSE_TYPE, @@ -388,6 +380,10 @@ mono_type_get_class (MonoType *type); MonoArrayType* mono_type_get_array_type (MonoType *type); +/* For MONO_TYPE_PTR */ +MonoType* +mono_type_get_ptr_type (MonoType *type); + MonoClass* mono_type_get_modifiers (MonoType *type, gboolean *is_required, gpointer *iter); @@ -446,6 +442,7 @@ int mono_type_size (MonoType *type, int mono_type_stack_size (MonoType *type, int *alignment); +gboolean mono_type_generic_inst_is_valuetype (MonoType *type); gboolean mono_metadata_generic_class_is_valuetype (MonoGenericClass *gclass); guint mono_metadata_generic_class_hash (MonoGenericClass *gclass); gboolean mono_metadata_generic_class_equal (MonoGenericClass *g1, MonoGenericClass *g2); @@ -515,6 +512,17 @@ char *mono_guid_to_string (const guint8 *guid); guint32 mono_metadata_declsec_from_index (MonoImage *meta, guint32 idx); +guint32 mono_metadata_translate_token_index (MonoImage *image, int table, guint32 idx); + +void mono_metadata_decode_table_row (MonoImage *image, int table, + int idx, + guint32 *res, + int res_size); + +guint32 mono_metadata_decode_table_row_col (MonoImage *image, int table, + int idx, + guint col); + G_END_DECLS #endif /* __MONO_METADATA_H__ */