#include <mono/metadata/mempool.h>
#include <mono/metadata/metadata-internals.h>
#include <mono/metadata/property-bag.h>
-#include <mono/io-layer/io-layer.h>
#include "mono/utils/mono-compiler.h"
#include "mono/utils/mono-error.h"
#include "mono/sgen/gc-internal-agnostic.h"
* initialise all static fields.
*/
/* size_inited is accessed without locks, so it needs a memory barrier */
+ /* All flag bits should be written while holding the loader lock */
guint size_inited : 1;
guint valuetype : 1; /* derives from System.ValueType */
guint enumtype : 1; /* derives from System.Enum */
guint8 *interface_bitmap;
guint32 max_interface_id;
guint8 rank;
+ /* Keep this a guint8, the jit depends on it */
+ guint8 initialized; /* cctor has been run */
guint remote : 1; /* class is remotely activated */
- guint initialized : 1; /* cctor has been run */
guint init_failed : 1; /* cctor execution failed */
guint has_static_fields : 1; /* pointer to the data stored at the end of the vtable array */
guint gc_bits : MONO_VTABLE_AVAILABLE_GC_BITS; /* Those bits are reserved for the usaged of the GC */
void
mono_install_get_class_from_name (MonoGetClassFromName func);
-MonoGenericContext*
+MONO_PROFILER_API MonoGenericContext*
mono_class_get_context (MonoClass *klass);
-MonoMethodSignature*
+MONO_PROFILER_API MonoMethodSignature*
mono_method_signature_checked (MonoMethod *m, MonoError *err);
MonoGenericContext*
mono_method_get_context_general (MonoMethod *method, gboolean uninflated);
-MonoGenericContext*
+MONO_PROFILER_API MonoGenericContext*
mono_method_get_context (MonoMethod *method);
/* Used by monodis, thus cannot be MONO_INTERNAL */
MonoClass *argumenthandle_class;
MonoClass *monitor_class;
MonoClass *generic_ilist_class;
- MonoClass *generic_icollection_class;
- MonoClass *generic_ienumerable_class;
MonoClass *generic_nullable_class;
MonoClass *handleref_class;
MonoClass *attribute_class;
/* method debugging functions, for use inside gdb */
MONO_API void mono_method_print_code (MonoMethod *method);
-char *mono_signature_full_name (MonoMethodSignature *sig);
+MONO_PROFILER_API char *mono_signature_full_name (MonoMethodSignature *sig);
/*Enum validation related functions*/
MONO_API gboolean
MONO_API gboolean
mono_class_is_valid_enum (MonoClass *klass);
-gboolean
+MONO_PROFILER_API gboolean
mono_type_is_primitive (MonoType *type);
MonoType *