merge from trunk revisions 58933, 58935, 58936
[mono.git] / mono / dis / get.h
1
2 /*
3  * These return allocated strings
4  */
5 char *get_typedef             (MonoImage *m, int idx);
6 char *get_module              (MonoImage *m, int idx);
7 char *get_moduleref           (MonoImage *m, int idx);
8 char *get_assemblyref         (MonoImage *m, int idx);
9 char *get_typeref             (MonoImage *m, int idx);
10 char *get_typedef_or_ref      (MonoImage *m, guint32 dor_token, MonoGenericContext *context);
11 char *dis_stringify_object_with_class (MonoImage *m, MonoClass *c, gboolean p, gboolean d);
12 char *get_type_or_methdef     (MonoImage *m, guint32 dor_token);
13 char *get_field_signature     (MonoImage *m, guint32 blob_signature, MonoGenericContext *context);
14 char *get_fieldref_signature  (MonoImage *m, int idx, MonoGenericContext *contxt);
15 char *decode_literal          (MonoImage *m, guint32 token);
16 char *get_field               (MonoImage *m, guint32 token, MonoGenericContext *context);
17 char *param_flags             (guint32 f);
18 char *field_flags             (guint32 f);
19 char *get_methodref_signature (MonoImage *m, guint32 blob_signature, const char *fancy,
20                                MonoGenericContext *context);
21 char *get_methodspec          (MonoImage *m, int idx, guint32 token, const char *fancy,
22                                MonoGenericContext *context);
23 char *get_constant            (MonoImage *m, MonoTypeEnum t, guint32 blob_index);
24 char *get_encoded_user_string_or_bytearray (const unsigned char *ptr, int len);
25 char *get_token               (MonoImage *m, guint32 token, MonoGenericContext *context);
26 char *get_token_type          (MonoImage *m, guint32 token, MonoGenericContext *context);
27 char *get_typespec            (MonoImage *m, guint32 blob_idx, gboolean is_def, MonoGenericContext *context);
28 char *get_methoddef           (MonoImage *m, guint32 idx);
29 char *get_method              (MonoImage *m, guint32 token, MonoGenericContext *context);
30 char *get_method_type_param   (MonoImage *m, guint32 blob_signature, MonoGenericContext *context);
31 char *get_guid                (MonoImage *m, guint32 guid_index);
32 char *get_marshal_info        (MonoImage *m, const char *blob);
33 char *get_generic_param       (MonoImage *m, MonoGenericContainer *container);
34 char *get_escaped_name        (const char *name);
35 char *get_method_override     (MonoImage *m, guint32 token, MonoGenericContext *context);
36
37 GList *dis_get_custom_attrs   (MonoImage *m, guint32 token);
38
39 char *dis_stringify_type      (MonoImage *m, MonoType *type, gboolean is_def);
40 char *dis_stringify_token     (MonoImage *m, guint32 token);
41 char *dis_stringify_array     (MonoImage *m, MonoArrayType *array, gboolean is_def);
42 char *dis_stringify_modifiers (MonoImage *m, int n, MonoCustomMod *mod);
43 char *dis_stringify_param     (MonoImage *m, MonoType *param);
44 char *dis_stringify_method_signature (MonoImage *m, MonoMethodSignature *method, int methoddef_row,
45                                       MonoGenericContext *context, gboolean fully_qualified);
46 char *dis_stringify_function_ptr (MonoImage *m, MonoMethodSignature *method);
47 char *dis_stringify_marshal_spec (MonoMarshalSpec *spec);
48
49 guint32 method_dor_to_token (guint32 idx);
50
51 /*
52  * These functions are used during the decoding of streams in the
53  * metadata heaps (a simple parsing).
54  *
55  * They return the `next' location to continue parsing from (ptr is
56  * the starting location).
57  *
58  * Results are returning in the pointer argument.
59  */
60 const char *get_encoded_typedef_or_ref (MonoImage *m, const char *ptr,
61                                         char **result);
62 const char *get_encoded_value          (const char *_ptr,
63                                         guint32 *len);
64 const char *get_custom_mod             (MonoImage *m, const char *ptr,
65                                         char **return_value);
66 const char *get_type                   (MonoImage *m, const char *ptr,
67                                         char **result, MonoGenericContext *context);
68 const char *get_ret_type               (MonoImage *m, const char *ptr,
69                                         char **ret_type, MonoGenericContext *context);
70 const char *get_param                  (MonoImage *m, const char *ptr,
71                                         char **retval, MonoGenericContext *context);
72 const char *get_blob_encoded_size      (const char *ptr, int *size);
73
74 MonoTypeEnum get_field_literal_type (MonoImage *m, guint32 blob_signature);
75
76 /**
77  * This is called to initialize the table containing keyword names
78  */
79 void init_key_table (void);
80
81 extern gboolean show_method_tokens;
82 extern gboolean show_tokens;