#define __MONO_OBJECT_INTERNALS_H__
#include <mono/metadata/object.h>
+#include <mono/metadata/threads.h>
#include <mono/metadata/reflection.h>
#include <mono/metadata/mempool.h>
#include <mono/io-layer/io-layer.h>
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;
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;
+ MonoThreadManageCallback manage_callback;
gpointer unused7;
};
gpointer method_ptr;
gpointer invoke_impl;
MonoObject *target;
+ MonoMethod *method;
MonoObject *target_type;
MonoString *method_name;
gpointer delegate_trampoline;
typedef struct _MonoReflectionGenericClass MonoReflectionGenericClass;
struct _MonoReflectionGenericClass {
MonoReflectionType type;
- MonoReflectionType *generic_type;
+ MonoReflectionTypeBuilder *generic_type;
guint32 initialized;
};
MonoArray *keyToken;
guint32 versioncompat;
MonoObject *version;
+ guint32 processor_architecture;
} MonoReflectionAssemblyName;
typedef struct {
MonoReflectionType *return_type;
guint32 call_conv;
guint32 unmanaged_call_conv;
+ MonoArray *modreqs;
+ MonoArray *modopts;
} MonoReflectionSigHelper;
+typedef struct {
+ MonoObject object;
+ MonoReflectionGenericClass *inst;
+ MonoReflectionFieldBuilder *fb;
+} MonoReflectionFieldOnTypeBuilderInst;
+
enum {
RESOURCE_LOCATION_EMBEDDED = 1,
RESOURCE_LOCATION_ANOTHER_ASSEMBLY = 2,
guint32 mono_image_create_token (MonoDynamicImage *assembly, MonoObject *obj, gboolean create_methodspec) MONO_INTERNAL;
guint32 mono_image_create_method_token (MonoDynamicImage *assembly, MonoObject *obj, MonoArray *opt_param_types) MONO_INTERNAL;
void mono_image_module_basic_init (MonoReflectionModuleBuilder *module) MONO_INTERNAL;
+void mono_image_register_token (MonoDynamicImage *assembly, guint32 token, MonoObject *obj) MONO_INTERNAL;
+void mono_dynamic_image_free (MonoDynamicImage *image) MONO_INTERNAL;
void mono_reflection_setup_internal_class (MonoReflectionTypeBuilder *tb) MONO_INTERNAL;
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, MonoGenericContext *context) 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;
+gboolean
+mono_reflection_is_valid_dynamic_token (MonoDynamicImage *image, guint32 token) MONO_INTERNAL;
+
void
mono_image_build_metadata (MonoReflectionModuleBuilder *module) MONO_INTERNAL;
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;
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;