Fix date.
[mono.git] / mono / metadata / object-internals.h
index fcf5b0c2dfbde64f84ef69c0865055b3ed8a0716..75a2b3ad56674a40e154beb8d71cc07417b5379d 100644 (file)
@@ -129,6 +129,7 @@ struct _MonoException {
        gint32      remote_stack_index;
        gint32      hresult;
        MonoString *source;
+       MonoObject *_data;
 };
 
 typedef struct {
@@ -261,7 +262,7 @@ struct _MonoThread {
        gpointer suspend_event;
        gpointer suspended_event;
        gpointer resume_event;
-       MonoObject *synch_lock;
+       CRITICAL_SECTION *synch_cs;
        guint8* serialized_culture_info;
        guint32 serialized_culture_info_len;
        guint8* serialized_ui_culture_info;
@@ -275,7 +276,9 @@ struct _MonoThread {
        gpointer end_stack; /* This is only used when running in the debugger. */
        MonoBoolean thread_interrupt_requested;
        guint8  apartment_state;
-       gpointer unused5;
+       gssize small_id;    /* A small, unique id, used for the hazard
+                              pointer table.  Should be changed to a
+                              guint32 at the next corlib version bump. */
        gpointer unused6;
        gpointer unused7;
 };
@@ -523,6 +526,7 @@ struct _MonoDelegate {
        gpointer method_ptr;
        gpointer invoke_impl;
        MonoObject *target;
+       MonoMethod *method;
        MonoObject *target_type;
        MonoString *method_name;
        gpointer delegate_trampoline;
@@ -949,6 +953,7 @@ typedef struct {
        MonoArray   *keyToken;
        guint32     versioncompat;
        MonoObject *version;
+       guint32     processor_architecture;
 } MonoReflectionAssemblyName;
 
 typedef struct {
@@ -1013,6 +1018,7 @@ typedef struct {
        gint32 nrefs;
        MonoArray *refs;
        GSList *referenced_by;
+       MonoReflectionType *owner;
 } MonoReflectionDynamicMethod; 
 
 typedef struct {
@@ -1023,6 +1029,8 @@ typedef struct {
        MonoReflectionType *return_type;
        guint32 call_conv;
        guint32 unmanaged_call_conv;
+       MonoArray *modreqs;
+       MonoArray *modopts;
 } MonoReflectionSigHelper;
 
 enum {
@@ -1095,7 +1103,7 @@ MonoArray  *mono_reflection_sighelper_get_signature_field (MonoReflectionSigHelp
 MonoReflectionMarshal* mono_reflection_marshal_from_marshal_spec (MonoDomain *domain, MonoClass *klass, MonoMarshalSpec *spec) MONO_INTERNAL;
 
 gpointer
-mono_reflection_lookup_dynamic_token (MonoImage *image, guint32 token, MonoClass **handle_class) MONO_INTERNAL;
+mono_reflection_lookup_dynamic_token (MonoImage *image, guint32 token, gboolean valid_token, MonoClass **handle_class, MonoGenericContext *context) MONO_INTERNAL;
 
 gboolean
 mono_reflection_call_is_assignable_to (MonoClass *klass, MonoClass *oklass) MONO_INTERNAL;
@@ -1124,6 +1132,9 @@ mono_remote_class_vtable (MonoDomain *domain, MonoRemoteClass *remote_class, Mon
 void
 mono_upgrade_remote_class (MonoDomain *domain, MonoObject *tproxy, MonoClass *klass) MONO_INTERNAL;
 
+gpointer
+mono_create_ftnptr (MonoDomain *domain, gpointer addr) MONO_INTERNAL;
+
 gpointer
 mono_get_addr_from_ftnptr (gpointer descr) MONO_INTERNAL;
 
@@ -1161,8 +1172,27 @@ typedef gpointer (*MonoImtThunkBuilder) (MonoVTable *vtable, MonoDomain *domain,
 void
 mono_install_imt_thunk_builder (MonoImtThunkBuilder func) MONO_INTERNAL;
 
+void
+mono_install_imt_trampoline (gpointer tramp) MONO_INTERNAL;
+
+void
+mono_install_vtable_trampoline (gpointer tramp) MONO_INTERNAL;
+
+void
+mono_vtable_build_imt_slot (MonoVTable* vtable, int imt_slot) MONO_INTERNAL;
+
 guint32
 mono_method_get_imt_slot (MonoMethod *method) MONO_INTERNAL;
 
+typedef enum {
+       MONO_UNHANLED_POLICY_LEGACY,
+       MONO_UNHANLED_POLICY_CURRENT
+} MonoRuntimeUnhandledExceptionPolicy;
+
+MonoRuntimeUnhandledExceptionPolicy
+mono_runtime_unhandled_exception_policy_get (void) MONO_INTERNAL;
+void
+mono_runtime_unhandled_exception_policy_set (MonoRuntimeUnhandledExceptionPolicy policy) MONO_INTERNAL;
+
 #endif /* __MONO_OBJECT_INTERNALS_H__ */