3 #include <mono/metadata/loader.h>
4 #include <mono/metadata/object.h>
12 VAL_NATI = 0 + VAL_POINTER,
13 VAL_MP = 1 + VAL_POINTER,
14 VAL_TP = 2 + VAL_POINTER,
15 VAL_OBJ = 3 + VAL_POINTER,
19 #if SIZEOF_VOID_P == 4
20 typedef guint32 mono_u;
21 typedef gint32 mono_i;
22 #elif SIZEOF_VOID_P == 8
23 typedef guint64 mono_u;
24 typedef gint64 mono_i;
28 * Value types are represented on the eval stack as pointers to the
29 * actual storage. The size field tells how much storage is allocated.
30 * A value type can't be larger than 16 MB.
37 /* native size integer and pointer types */
48 typedef struct _MonoInvocation MonoInvocation;
50 struct _MonoInvocation {
51 MonoInvocation *parent; /* parent */
52 MonoInvocation *child;
53 MonoMethod *method; /* parent */
54 stackval *retval; /* parent */
55 void *obj; /* this - parent */
58 stackval *stack_args; /* parent */
61 const unsigned char *ip;
63 MonoExceptionClause *ex_handler;
66 void mono_init_icall (void);
68 void inline stackval_from_data (MonoType *type, stackval *result, const char *data);
69 void ves_exec_method (MonoInvocation *frame);
71 typedef void (*MonoFunc) ();
72 typedef void (*MonoPIFunc) (MonoFunc callme, void *retval, void *obj_this, stackval *arguments);
75 * defined in an arch specific file.
77 MonoPIFunc mono_create_trampoline (MonoMethod *method, int runtime);
78 void *mono_create_method_pointer (MonoMethod *method);
79 MonoMethod *mono_method_pointer_get (void *code);