Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
[mono.git] / mono / metadata / object.h
index 118c4087d81c23d767c2ebd7f440656a9eae8f29..388e079ad8251b98337051b27dd047e30d1d32d7 100644 (file)
@@ -142,6 +142,8 @@ typedef struct {
 typedef struct {
        MonoObject  object;
        MonoReflectionType *class_to_proxy;     
+       MonoObject *context;
+       MonoObject *unwrapped_server;
 } MonoRealProxy;
 
 typedef struct {
@@ -180,6 +182,9 @@ typedef struct {
        MonoException *abort_exc;
        MonoObject *abort_state;
        guint32 tid;
+       HANDLE      start_notify;
+       gpointer stack_ptr;
+       gpointer *static_data;
 } MonoThread;
 
 typedef struct {
@@ -195,6 +200,7 @@ 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)
@@ -212,8 +218,6 @@ typedef gpointer    (*MonoCompileFunc)       (MonoMethod *method);
 #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);
 
@@ -223,6 +227,9 @@ mono_object_new             (MonoDomain *domain, MonoClass *klass);
 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);
 
@@ -243,7 +250,7 @@ MonoString*
 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);
@@ -269,6 +276,9 @@ mono_string_to_utf8         (MonoString *string_obj);
 gunichar2 *
 mono_string_to_utf16        (MonoString *string_obj);
 
+MonoString *
+mono_string_from_utf16      (gunichar2 *data);
+
 void       
 mono_object_free            (MonoObject *o);
 
@@ -293,7 +303,7 @@ void
 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);
@@ -322,6 +332,11 @@ mono_runtime_invoke_array   (MonoMethod *method, void *obj, MonoArray *params,
 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);
@@ -356,9 +371,15 @@ mono_method_call_message_new (MonoMethod *method, gpointer *params, MonoMethod *
 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);