typedef struct {
MonoObject object;
MonoReflectionType *class_to_proxy;
+ MonoObject *context;
+ MonoObject *unwrapped_server;
} MonoRealProxy;
typedef struct {
MonoException *abort_exc;
MonoObject *abort_state;
guint32 tid;
+ HANDLE start_notify;
+ gpointer stack_ptr;
+ gpointer *static_data;
} MonoThread;
typedef struct {
typedef MonoObject* (*MonoInvokeFunc) (MonoMethod *method, void *obj, void **params, MonoObject **exc);
typedef gpointer (*MonoCompileFunc) (MonoMethod *method);
+typedef void (*MonoMainThreadFunc) (gpointer user_data);
#define mono_object_class(obj) (((MonoObject*)(obj))->vtable->klass)
#define mono_object_domain(obj) (((MonoObject*)(obj))->vtable->domain)
#define mono_string_chars(s) ((gunichar2*)(s)->chars)
#define mono_string_length(s) ((s)->length)
-extern MonoMethod *mono_start_method;
-
void *
mono_object_allocate (size_t size);
MonoObject *
mono_object_new_specific (MonoVTable *vtable);
+MonoObject *
+mono_object_new_alloc_specific (MonoVTable *vtable);
+
MonoObject *
mono_object_new_from_token (MonoDomain *domain, MonoImage *image, guint32 token);
mono_string_new_utf16 (MonoDomain *domain, const guint16 *text, gint32 len);
MonoString*
-mono_string_new_size (MonoDomain *domain, gint32 len);
+mono_string_new_size (MonoDomain *domain, gint32 len);
MonoString*
mono_ldstr (MonoDomain *domain, MonoImage *image, guint32 str_index);
gunichar2 *
mono_string_to_utf16 (MonoString *string_obj);
+MonoString *
+mono_string_from_utf16 (gunichar2 *data);
+
void
mono_object_free (MonoObject *o);
mono_runtime_object_init (MonoObject *this_obj);
void
-mono_runtime_class_init (MonoClass *klass);
+mono_runtime_class_init (MonoVTable *vtable);
void
mono_install_runtime_invoke (MonoInvokeFunc func);
MonoArray*
mono_runtime_get_main_args (void);
+void
+mono_runtime_exec_managed_code (MonoDomain *domain,
+ MonoMainThreadFunc main_func,
+ gpointer main_args);
+
int
mono_runtime_run_main (MonoMethod *method, int argc, char* argv[],
MonoObject **exc);
gpointer
mono_load_remote_field (MonoObject *this_obj, MonoClass *klass, MonoClassField *field, gpointer *res);
+MonoObject *
+mono_load_remote_field_new (MonoObject *this_obj, MonoClass *klass, MonoClassField *field);
+
void
mono_store_remote_field (MonoObject *this_obj, MonoClass *klass, MonoClassField *field, gpointer val);
+void
+mono_store_remote_field_new (MonoObject *this_obj, MonoClass *klass, MonoClassField *field, MonoObject *arg);
+
void
mono_method_return_message_restore (MonoMethod *method, gpointer *params, MonoArray *out_args);