MonoBoolean completed;
MonoBoolean endinvoke_called;
MonoObject *async_callback;
+ MonoObject *execution_context;
+ MonoObject *original_context;
} MonoAsyncResult;
typedef struct {
MonoString *filename;
gint32 line;
gint32 column;
+ MonoString *internal_method_name;
} MonoStackFrame;
struct _MonoThread {
gpointer *static_data;
gpointer jit_data;
gpointer lock_data;
- gpointer unused1;
- gpointer unused2;
+ MonoAppContext *current_appcontext;
int stack_size;
MonoObject *start_obj;
GSList *appdomain_refs;
MonoBoolean interruption_requested;
gpointer suspend_event;
+ gpointer suspended_event;
gpointer resume_event;
MonoObject *synch_lock;
guint8* serialized_culture_info;
guint32 serialized_culture_info_len;
guint8* serialized_ui_culture_info;
guint32 serialized_ui_culture_info_len;
+ MonoObject *execution_context;
+ /*
+ * 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;
+ gpointer unused3;
+ gpointer unused4;
+ gpointer unused5;
+ gpointer unused6;
+ gpointer unused7;
};
typedef struct {
guint32
mono_thread_get_tls_key (void);
+gint32
+mono_thread_get_tls_offset (void);
+
guint32
mono_domain_get_tls_key (void);
+gint32
+mono_domain_get_tls_offset (void);
+
/* Reflection and Reflection.Emit support */
/*
MonoObject *refuse; /* PermissionSet - for SecurityAction.RequestRefuse */
MonoObject *granted; /* PermissionSet - for the resolved assembly granted permissions */
MonoObject *denied; /* PermissionSet - for the resolved assembly denied permissions */
+ /* */
+ MonoBoolean from_byte_array;
};
typedef struct {
MonoString *mcookie;
MonoString *marshaltype;
MonoReflectionType *marshaltyperef;
+ gint32 param_num;
+ MonoBoolean has_size;
} MonoReflectionMarshal;
typedef struct {
MonoString *dll;
MonoString *dllentry;
guint32 charset;
+ guint32 extra_flags;
guint32 native_cc;
guint32 call_conv;
MonoBoolean init_locals;
MonoString *name;
MonoString *codebase;
gint32 major, minor, build, revision;
- /* FIXME: add missing stuff */
-/* CultureInfo cultureinfo;
- AssemblyNameFlags flags;
- AssemblyHashAlgorithm hashalg;
- StrongNameKeyPair keypair;
- AssemblyVersionCompatibility versioncompat;*/
MonoObject *cultureInfo;
guint32 flags;
guint32 hashalg;
MonoObject *keypair;
MonoArray *publicKey;
MonoArray *keyToken;
- MonoObject *versioncompat;
+ guint32 versioncompat;
+ MonoObject *version;
} MonoReflectionAssemblyName;
typedef struct {
MonoBoolean throw_on_unmappable;
} MonoReflectionDllImportAttribute;
+typedef struct {
+ MonoObject object;
+ gint32 call_conv;
+ gint32 charset;
+ MonoBoolean set_last_error;
+ MonoBoolean best_fit_mapping;
+ MonoBoolean throw_on_unmappable;
+} MonoReflectionUnmanagedFunctionPointerAttribute;
+
typedef struct {
MonoObject object;
MonoMethod *mhandle;
void mono_reflection_initialize_generic_parameter (MonoReflectionGenericParam *gparam);
+MonoType*
+mono_class_bind_generic_parameters (MonoType *type, int type_argc, MonoType **types);
MonoType*
mono_reflection_bind_generic_parameters (MonoReflectionType *type, int type_argc, MonoType **types);
MonoReflectionMethod*
MonoReflectionMarshal* mono_reflection_marshal_from_marshal_spec (MonoDomain *domain, MonoClass *klass, MonoMarshalSpec *spec);
gpointer
-mono_reflection_lookup_dynamic_token (MonoImage *image, guint32 token);
+mono_reflection_lookup_dynamic_token (MonoImage *image, guint32 token, MonoClass **handle_class);
+
+gboolean
+mono_reflection_call_is_assignable_to (MonoClass *klass, MonoClass *oklass);
void
mono_image_build_metadata (MonoReflectionModuleBuilder *module);
MonoMethodSignature*
mono_method_get_signature_full (MonoMethod *method, MonoImage *image, guint32 token, MonoGenericContext *context);
+void
+mono_upgrade_remote_class (MonoDomain *domain, MonoObject *tproxy, MonoClass *klass);
+
#endif /* __MONO_OBJECT_INTERNALS_H__ */