Merge pull request #234 from kripper/master
[mono.git] / mono / metadata / loader.h
1 #ifndef _MONO_METADATA_LOADER_H_
2 #define _MONO_METADATA_LOADER_H_ 1
3
4 #include <mono/metadata/metadata.h>
5 #include <mono/metadata/image.h>
6
7 MONO_BEGIN_DECLS
8
9 typedef mono_bool (*MonoStackWalk)     (MonoMethod *method, int32_t native_offset, int32_t il_offset, mono_bool managed, void* data);
10
11 MonoMethod *
12 mono_get_method             (MonoImage *image, uint32_t token, MonoClass *klass);
13
14 MonoMethod *
15 mono_get_method_full        (MonoImage *image, uint32_t token, MonoClass *klass,
16                              MonoGenericContext *context);
17
18 MonoMethod *
19 mono_get_method_constrained (MonoImage *image, uint32_t token, MonoClass *constrained_class,
20                              MonoGenericContext *context, MonoMethod **cil_method);
21
22 void               
23 mono_free_method           (MonoMethod *method);
24
25 MonoMethodSignature*
26 mono_method_get_signature_full (MonoMethod *method, MonoImage *image, uint32_t token,
27                                 MonoGenericContext *context);
28
29 MonoMethodSignature* 
30 mono_method_get_signature  (MonoMethod *method, MonoImage *image, uint32_t token);
31
32 MonoMethodSignature* 
33 mono_method_signature      (MonoMethod *method);
34
35 MonoMethodHeader* 
36 mono_method_get_header     (MonoMethod *method);
37
38 const char*
39 mono_method_get_name       (MonoMethod *method);
40
41 MonoClass*
42 mono_method_get_class      (MonoMethod *method);
43
44 uint32_t
45 mono_method_get_token      (MonoMethod *method);
46
47 uint32_t
48 mono_method_get_flags      (MonoMethod *method, uint32_t *iflags);
49
50 uint32_t
51 mono_method_get_index      (MonoMethod *method);
52
53 MonoImage *
54 mono_load_image            (const char *fname, MonoImageOpenStatus *status);
55
56 void
57 mono_add_internal_call     (const char *name, const void* method);
58
59 void*
60 mono_lookup_internal_call (MonoMethod *method);
61
62 const char*
63 mono_lookup_icall_symbol (MonoMethod *m);
64
65 void
66 mono_dllmap_insert (MonoImage *assembly, const char *dll, const char *func, const char *tdll, const char *tfunc);
67
68 void*
69 mono_lookup_pinvoke_call (MonoMethod *method, const char **exc_class, const char **exc_arg);
70
71 void
72 mono_method_get_param_names (MonoMethod *method, const char **names);
73
74 uint32_t
75 mono_method_get_param_token (MonoMethod *method, int idx);
76
77 void
78 mono_method_get_marshal_info (MonoMethod *method, MonoMarshalSpec **mspecs);
79
80 mono_bool
81 mono_method_has_marshal_info (MonoMethod *method);
82
83 MonoMethod*
84 mono_method_get_last_managed  (void);
85
86 void
87 mono_stack_walk         (MonoStackWalk func, void* user_data);
88
89 /* Use this if the IL offset is not needed: it's faster */
90 void
91 mono_stack_walk_no_il   (MonoStackWalk func, void* user_data);
92
93 MONO_END_DECLS
94
95 #endif
96