/
loader.h
85 lines (71 loc) · 1.94 KB
/
loader.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#ifndef _MONO_METADATA_LOADER_H_
#define _MONO_METADATA_LOADER_H_ 1
#include <mono/metadata/metadata.h>
#include <mono/metadata/image.h>
typedef struct {
guint16 flags; /* method flags */
guint16 iflags; /* method implementation flags */
MonoClass *klass;
MonoMethodSignature *signature;
gpointer addr;
gpointer info; /* runtime info */
gint slot;
/* name is useful mostly for debugging */
const char *name;
} MonoMethod;
typedef struct {
MonoMethod method;
MonoMethodHeader *header;
} MonoMethodNormal;
typedef struct {
MonoMethod method;
guint16 piflags; /* pinvoke flags */
void (*code) ();
} MonoMethodPInvoke;
typedef struct {
MonoImage *corlib;
MonoClass *object_class;
MonoClass *byte_class;
MonoClass *void_class;
MonoClass *boolean_class;
MonoClass *sbyte_class;
MonoClass *int16_class;
MonoClass *uint16_class;
MonoClass *int32_class;
MonoClass *uint32_class;
MonoClass *int_class;
MonoClass *uint_class;
MonoClass *int64_class;
MonoClass *uint64_class;
MonoClass *single_class;
MonoClass *double_class;
MonoClass *char_class;
MonoClass *string_class;
MonoClass *enum_class;
MonoClass *array_class;
MonoClass *multicastdelegate_class;
MonoClass *asyncresult_class;
MonoClass *waithandle_class;
MonoClass *typehandle_class;
MonoClass *fieldhandle_class;
MonoClass *methodhandle_class;
MonoClass *monotype_class;
MonoClass *exception_class;
MonoClass *thread_class;
} MonoDefaults;
extern MonoDefaults mono_defaults;
void
mono_init_icall (void);
MonoMethod *
mono_get_method (MonoImage *image, guint32 token, MonoClass *klass);
void
mono_free_method (MonoMethod *method);
MonoImage *
mono_load_image (const char *fname, enum MonoImageOpenStatus *status);
void
mono_add_internal_call (const char *name, gpointer method);
gpointer
mono_lookup_internal_call (const char *name);
void
mono_method_get_param_names (MonoMethod *method, const char **names);
#endif