MonoThreadsSync *synchronisation;
} MonoObject;
+typedef struct {
+ MonoObject obj;
+ MonoObject *identity;
+} MonoMarshalByRefObject;
+
typedef struct {
guint32 length;
guint32 lower_bound;
} MonoAsyncResult;
typedef struct {
- MonoObject object;
+ MonoMarshalByRefObject object;
gpointer handle;
MonoBoolean disposed;
} MonoWaitHandle;
typedef struct {
MonoObject object;
MonoReflectionType *class_to_proxy;
+ MonoObject *context;
+ MonoObject *unwrapped_server;
} MonoRealProxy;
typedef struct {
gint32 column;
} MonoStackFrame;
+typedef struct {
+ MonoObject obj;
+ HANDLE handle;
+ MonoObject *culture_info;
+ MonoBoolean threadpool_thread;
+ guint32 state;
+ MonoException *abort_exc;
+ MonoObject *abort_state;
+ guint32 tid;
+ HANDLE start_notify;
+ gpointer stack_ptr;
+ gpointer *static_data;
+} MonoThread;
+
+typedef struct {
+ MonoString *name;
+ MonoReflectionType *type;
+ MonoObject *value;
+} MonoSerializationEntry;
+
+typedef struct {
+ guint32 state;
+ MonoObject *additional;
+} MonoStreamingContext;
+
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_raise_exception (MonoException *ex);
void
-mono_runtime_object_init (MonoObject *this);
+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);
void
mono_install_compile_method (MonoCompileFunc func);
+MonoMethod*
+mono_object_get_virtual_method (MonoObject *obj, MonoMethod *method);
+
MonoObject*
mono_runtime_invoke (MonoMethod *method, void *obj, void **params,
MonoObject **exc);
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);
mono_wait_handle_new (MonoDomain *domain, HANDLE handle);
void
-mono_message_init (MonoDomain *domain, MonoMethodMessage *this,
+mono_message_init (MonoDomain *domain, MonoMethodMessage *this_obj,
MonoReflectionMethod *method, MonoArray *out_args);
MonoObject *
MonoDelegate **cb, MonoObject **state);
gpointer
-mono_load_remote_field (MonoObject *this, MonoClass *klass, MonoClassField *field, gpointer *res);
+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 (MonoObject *this, MonoClass *klass, MonoClassField *field, gpointer val);
+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);
mono_print_unhandled_exception (MonoObject *exc);
void
-mono_delegate_ctor (MonoObject *this, MonoObject *target, gpointer addr);
+mono_delegate_ctor (MonoObject *this_obj, MonoObject *target, gpointer addr);
gpointer
mono_compile_method (MonoMethod *method);
+/* accessors for fields and properties */
+void
+mono_field_set_value (MonoObject *obj, MonoClassField *field, void *value);
+
+void
+mono_field_static_set_value (MonoVTable *vt, MonoClassField *field, void *value);
+
+void
+mono_field_get_value (MonoObject *obj, MonoClassField *field, void *value);
+
+void
+mono_field_static_get_value (MonoVTable *vt, MonoClassField *field, void *value);
+
+void
+mono_property_set_value (MonoProperty *prop, void *obj, void **params, MonoObject **exc);
+
+MonoObject*
+mono_property_get_value (MonoProperty *prop, void *obj, void **params, MonoObject **exc);
+
#endif