2010-04-19 Rodrigo Kumpera <rkumpera@novell.com>
[mono.git] / mono / metadata / loader.h
blob0f2621e036f78e70e0c054659d196d4138a26a0a
1 #ifndef _MONO_METADATA_LOADER_H_
2 #define _MONO_METADATA_LOADER_H_ 1
4 #include <mono/metadata/metadata.h>
5 #include <mono/metadata/image.h>
7 MONO_BEGIN_DECLS
9 typedef mono_bool (*MonoStackWalk) (MonoMethod *method, int32_t native_offset, int32_t il_offset, mono_bool managed, void* data);
11 MonoMethod *
12 mono_get_method (MonoImage *image, uint32_t token, MonoClass *klass);
14 MonoMethod *
15 mono_get_method_full (MonoImage *image, uint32_t token, MonoClass *klass,
16 MonoGenericContext *context);
18 MonoMethod *
19 mono_get_method_constrained (MonoImage *image, uint32_t token, MonoClass *constrained_class,
20 MonoGenericContext *context, MonoMethod **cil_method);
22 void
23 mono_free_method (MonoMethod *method);
25 MonoMethodSignature*
26 mono_method_get_signature_full (MonoMethod *method, MonoImage *image, uint32_t token,
27 MonoGenericContext *context);
29 MonoMethodSignature*
30 mono_method_get_signature (MonoMethod *method, MonoImage *image, uint32_t token);
32 MonoMethodSignature*
33 mono_method_signature (MonoMethod *method);
35 MonoMethodHeader*
36 mono_method_get_header (MonoMethod *method);
38 const char*
39 mono_method_get_name (MonoMethod *method);
41 MonoClass*
42 mono_method_get_class (MonoMethod *method);
44 uint32_t
45 mono_method_get_token (MonoMethod *method);
47 uint32_t
48 mono_method_get_flags (MonoMethod *method, uint32_t *iflags);
50 uint32_t
51 mono_method_get_index (MonoMethod *method);
53 MonoImage *
54 mono_load_image (const char *fname, MonoImageOpenStatus *status);
56 void
57 mono_add_internal_call (const char *name, const void* method);
59 void*
60 mono_lookup_internal_call (MonoMethod *method);
62 void
63 mono_dllmap_insert (MonoImage *assembly, const char *dll, const char *func, const char *tdll, const char *tfunc);
65 void*
66 mono_lookup_pinvoke_call (MonoMethod *method, const char **exc_class, const char **exc_arg);
68 void
69 mono_method_get_param_names (MonoMethod *method, const char **names);
71 uint32_t
72 mono_method_get_param_token (MonoMethod *method, int idx);
74 void
75 mono_method_get_marshal_info (MonoMethod *method, MonoMarshalSpec **mspecs);
77 mono_bool
78 mono_method_has_marshal_info (MonoMethod *method);
80 MonoMethod*
81 mono_method_get_last_managed (void);
83 void
84 mono_stack_walk (MonoStackWalk func, void* user_data);
86 /* Use this if the IL offset is not needed: it's faster */
87 void
88 mono_stack_walk_no_il (MonoStackWalk func, void* user_data);
90 MONO_END_DECLS
92 #endif