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 */
62 const unsigned char *ip;
64 MonoExceptionClause *ex_handler;
67 void mono_init_icall (void);
69 void inline stackval_from_data (MonoType *type, stackval *result, char *data, gboolean pinvoke);
70 void inline stackval_to_data (MonoType *type, stackval *val, char *data, gboolean pinvoke);
71 void ves_exec_method (MonoInvocation *frame);
73 typedef void (*MonoFunc) (void);
74 typedef void (*MonoPIFunc) (MonoFunc callme, void *retval, void *obj_this, stackval *arguments);
77 * defined in an arch specific file.
80 mono_create_trampoline (MonoMethodSignature *sig, gboolean string_ctor);
81 void *mono_create_method_pointer (MonoMethod *method);