struct _MonoInternalThread {
MonoObject obj;
volatile int lock_thread_id; /* to be used as the pre-shifted thread id in thin locks. Used for appdomain_ref push/pop */
- HANDLE handle;
+ MonoThreadHandle *handle;
+ HANDLE native_handle;
MonoArray *cached_culture_info;
gunichar2 *name;
guint32 name_len;
gsize abort_protected_block_count;
gint32 priority;
GPtrArray *owned_mutexes;
+ MonoOSEvent *suspended;
+ gint32 self_suspended; // TRUE | FALSE
/*
* These fields are used to avoid having to increment corlib versions
* when a new field is added to this structure.
guint32 attrs;
} MonoReflectionGenericParam;
+typedef struct {
+ MonoReflectionType type;
+ MonoReflectionTypeBuilder *tb;
+} MonoReflectionEnumBuilder;
+
typedef struct _MonoReflectionGenericClass MonoReflectionGenericClass;
struct _MonoReflectionGenericClass {
MonoReflectionType type;
MonoReflectionType *generic_type; /*Can be either a MonoType or a TypeBuilder*/
MonoArray *type_arguments;
- guint32 initialized;
};
typedef struct {
guint32 processor_architecture;
} MonoReflectionAssemblyName;
+/* Safely access System.Reflection.AssemblyName from native code */
+TYPED_HANDLE_DECL (MonoReflectionAssemblyName);
+
typedef struct {
MonoObject obj;
MonoString *name;
MonoArray *modopts;
} MonoReflectionSigHelper;
-typedef struct {
- MonoObject object;
- MonoReflectionGenericClass *inst;
- MonoObject *fb; /*can be either a MonoField or a FieldBuilder*/
-} MonoReflectionFieldOnTypeBuilderInst;
-
-typedef struct {
- MonoObject object;
- MonoReflectionGenericClass *inst;
- MonoObject *cb; /*can be either a MonoCMethod or ConstructorBuilder*/
-} MonoReflectionCtorOnTypeBuilderInst;
-
-typedef struct {
- MonoObject object;
- MonoReflectionType *inst;
- MonoObject *mb; /*can be either a MonoMethod or MethodBuilder*/
- MonoArray *method_args;
- MonoReflectionMethodBuilder *generic_method_definition;
-} MonoReflectionMethodOnTypeBuilderInst;
-
typedef struct {
MonoObject object;
MonoBoolean visible;
void mono_reflection_setup_internal_class (MonoReflectionTypeBuilder *tb);
-MonoReflectionType*
-ves_icall_TypeBuilder_create_runtime_class (MonoReflectionTypeBuilder *tb);
-
-void
-ves_icall_TypeBuilder_setup_internal_class (MonoReflectionTypeBuilder *tb);
-
void mono_reflection_get_dynamic_overrides (MonoClass *klass, MonoMethod ***overrides, int *num_overrides, MonoError *error);
void mono_reflection_destroy_dynamic_method (MonoReflectionDynamicMethod *mb);
void
mono_release_type_locks (MonoInternalThread *thread);
+char *
+mono_string_handle_to_utf8 (MonoStringHandle s, MonoError *error);
+
char *
mono_string_to_utf8_mp (MonoMemPool *mp, MonoString *s, MonoError *error);
mono_string_intern_checked (MonoString *str, MonoError *error);
char *
-mono_exception_get_native_backtrace (MonoException *exc);
+mono_exception_handle_get_native_backtrace (MonoExceptionHandle exc);
-MonoString *
-ves_icall_Mono_Runtime_GetNativeStackTrace (MonoException *exc);
+MonoStringHandle
+ves_icall_Mono_Runtime_GetNativeStackTrace (MonoExceptionHandle exc, MonoError *erro);
char *
mono_exception_get_managed_backtrace (MonoException *exc);
MonoReflectionModule*
ves_icall_AssemblyBuilder_InternalAddModule (MonoReflectionAssemblyBuilder *ab, MonoString *fileName);
-void
-ves_icall_TypeBuilder_create_generic_class (MonoReflectionTypeBuilder *tb);
-
MonoArray*
ves_icall_CustomAttributeBuilder_GetBlob (MonoReflectionAssembly *assembly, MonoObject *ctor, MonoArray *ctorArgs, MonoArray *properties, MonoArray *propValues, MonoArray *fields, MonoArray* fieldValues);
void
ves_icall_DynamicMethod_create_dynamic_method (MonoReflectionDynamicMethod *mb);
-MonoBoolean
-ves_icall_TypeBuilder_get_IsGenericParameter (MonoReflectionTypeBuilder *tb);
+MonoReflectionType*
+ves_icall_TypeBuilder_create_runtime_class (MonoReflectionTypeBuilder *tb);
void
ves_icall_EnumBuilder_setup_enum_type (MonoReflectionType *enumtype,
MonoReflectionType *t);
-MonoReflectionType*
-ves_icall_ModuleBuilder_create_modified_type (MonoReflectionTypeBuilder *tb, MonoString *smodifiers);
-
void
ves_icall_ModuleBuilder_basic_init (MonoReflectionModuleBuilder *moduleb);
void
ves_icall_ModuleBuilder_set_wrappers_type (MonoReflectionModuleBuilder *moduleb, MonoReflectionType *type);
-void
-ves_icall_GenericTypeParameterBuilder_initialize_generic_parameter (MonoReflectionGenericParam *gparam);
-
-MonoReflectionMethod*
-ves_icall_MethodBuilder_MakeGenericMethod (MonoReflectionMethod *rmethod, MonoArray *types);
-
#endif /* __MONO_OBJECT_INTERNALS_H__ */