2006-06-15 Zoltan Varga <vargaz@gmail.com>
[mono.git] / mono / metadata / object-internals.h
index e463dd18ee622115f12afddc5b3222df84193ba1..3b5a440c388da33423fc23476d7e984745c7634b 100644 (file)
@@ -3,6 +3,7 @@
 
 #include <mono/metadata/object.h>
 #include <mono/metadata/reflection.h>
+#include <mono/metadata/mempool.h>
 #include <mono/io-layer/io-layer.h>
 
 #if 1
@@ -149,7 +150,8 @@ typedef struct {
        MonoObject  *async_state;
        MonoObject  *handle;
        MonoObject  *async_delegate;
-       gpointer     data;
+       gpointer    *data;
+       MonoObject  *object_data;
        MonoBoolean  sync_completed;
        MonoBoolean  completed;
        MonoBoolean  endinvoke_called;
@@ -221,8 +223,8 @@ struct _MonoThread {
        MonoObject  obj;
        int         lock_thread_id; /* to be used as the pre-shifted thread id in thin locks */
        HANDLE      handle;
-       MonoObject **culture_info;
-       MonoObject **ui_culture_info;
+       MonoArray  *cached_culture_info;
+       gpointer    unused1;
        MonoBoolean threadpool_thread;
        gunichar2  *name;
        guint32     name_len;
@@ -253,8 +255,8 @@ struct _MonoThread {
         * These fields are used to avoid having to increment corlib versions
         * when a new field is added to the unmanaged MonoThread structure.
         */
-       gpointer unused1;
-       gpointer unused2;
+       MonoBoolean thread_dump_requested;
+       gpointer end_stack; /* This is only used when running in the debugger. */
        gpointer unused3;
        gpointer unused4;
        gpointer unused5;
@@ -391,6 +393,11 @@ typedef struct {
        gint32 lcid;
 } MonoSortKey;
 
+typedef struct {
+       MonoObject object;
+       guint16 intType;
+} MonoInterfaceTypeAttribute;
+
 /* used to free a dynamic method */
 typedef void        (*MonoFreeMethodFunc)       (MonoDomain *domain, MonoMethod *method);
 
@@ -401,7 +408,7 @@ typedef gboolean    (*MonoInitVTableFunc)    (MonoVTable *vtable);
 
 MonoAsyncResult *
 mono_async_result_new      (MonoDomain *domain, HANDLE handle, 
-                            MonoObject *state, gpointer data);
+                            MonoObject *state, gpointer data, MonoObject *object_data);
 
 MonoWaitHandle *
 mono_wait_handle_new       (MonoDomain *domain, HANDLE handle);
@@ -556,6 +563,7 @@ struct _MonoReflectionAssembly {
        MonoObject *denied;     /* PermissionSet - for the resolved assembly denied permissions */
        /* */
        MonoBoolean from_byte_array;
+       MonoString *name;
 };
 
 typedef struct {
@@ -754,6 +762,7 @@ typedef struct {
        MonoString *filename;
        guint32 attrs;
        guint32 offset;
+       MonoObject *stream;
 } MonoReflectionResource;
 
 typedef struct {
@@ -794,6 +803,7 @@ typedef struct {
        gint32 pe_kind;
        gint32 machine;
        MonoBoolean corlib_internal;
+       MonoArray *type_forwarders;
 } MonoReflectionAssemblyBuilder;
 
 typedef struct {
@@ -887,6 +897,7 @@ typedef struct {
        guint32 index;
        MonoReflectionType *base_type;
        MonoArray *iface_constraints;
+       MonoArray *cattrs;
        guint32 attrs;
 } MonoReflectionGenericParam;
 
@@ -1025,6 +1036,8 @@ void        mono_reflection_create_generic_class  (MonoReflectionTypeBuilder *tb
 
 MonoReflectionType* mono_reflection_create_runtime_class  (MonoReflectionTypeBuilder *tb);
 
+void        mono_reflection_get_dynamic_overrides (MonoClass *klass, MonoMethod ***overrides, int *num_overrides);
+
 void mono_reflection_create_dynamic_method (MonoReflectionDynamicMethod *m);
 
 void        mono_reflection_initialize_generic_parameter (MonoReflectionGenericParam *gparam);
@@ -1061,6 +1074,9 @@ mono_get_constant_value_from_blob (MonoDomain* domain, MonoTypeEnum type, const
 void
 mono_release_type_locks (MonoThread *thread);
 
+char *
+mono_string_to_utf8_mp (MonoMemPool *mp, MonoString *s);
+
 MonoArray*
 mono_array_clone_in_domain (MonoDomain *domain, MonoArray *array);
 
@@ -1079,5 +1095,11 @@ mono_upgrade_remote_class (MonoDomain *domain, MonoObject *tproxy, MonoClass *kl
 gpointer
 mono_get_addr_from_ftnptr (gpointer descr);
 
+void
+mono_nullable_init (guint8 *buf, MonoObject *value, MonoClass *klass);
+
+MonoObject*
+mono_nullable_box (guint8 *buf, MonoClass *klass);
+
 #endif /* __MONO_OBJECT_INTERNALS_H__ */