2009-07-30 Rodrigo Kumpera <rkumpera@novell.com>
[mono.git] / mono / metadata / metadata-internals.h
index 18b921586827c926048a085d7161fdba32f3ede3..e27ffc770a1a527888ae2215d7dc4d2c3d9ea6ce 100644 (file)
@@ -108,6 +108,9 @@ struct _MonoImage {
        guint8 idx_string_wide : 1;
        guint8 idx_guid_wide : 1;
        guint8 idx_blob_wide : 1;
+
+       /* Whenever this image is considered as platform code for the CoreCLR security model */
+       guint8 core_clr_platform_code : 1;
                            
        char *name;
        const char *assembly_name;
@@ -178,7 +181,7 @@ struct _MonoImage {
        /*
         * Indexes namespaces to hash tables that map class name to typedef token.
         */
-       GHashTable *name_cache;
+       GHashTable *name_cache;  /*protected by the image lock*/
 
        /*
         * Indexed by MonoClass
@@ -215,8 +218,7 @@ struct _MonoImage {
        GHashTable *synchronized_cache;
        GHashTable *unbox_wrapper_cache;
        GHashTable *cominterop_invoke_cache;
-       GHashTable *cominterop_wrapper_cache;
-       GHashTable *static_rgctx_invoke_cache; /* LOCKING: marshal lock */
+       GHashTable *cominterop_wrapper_cache; /* LOCKING: marshal lock */
        GHashTable *thunk_invoke_cache;
 
        /*
@@ -340,6 +342,7 @@ struct _MonoDynamicImage {
        MonoDynamicStream tstream;
        MonoDynamicStream guid;
        MonoDynamicTable tables [MONO_TABLE_NUM];
+       MonoClass *wrappers_type; /*wrappers are bound to this type instead of <Module>*/
 };
 
 /* Contains information about assembly binding */
@@ -546,5 +549,13 @@ mono_metadata_get_corresponding_property_from_generic_type_definition (MonoPrope
 guint32
 mono_metadata_signature_size (MonoMethodSignature *sig) MONO_INTERNAL;
 
+gboolean mono_image_load_pe_data (MonoImage *image) MONO_INTERNAL;
+
+gboolean mono_image_load_cli_data (MonoImage *image) MONO_INTERNAL;
+
+void mono_image_load_names (MonoImage *image) MONO_INTERNAL;
+
+MonoImage *mono_image_open_raw (const char *fname, MonoImageOpenStatus *status) MONO_INTERNAL;
+
 #endif /* __MONO_METADATA_INTERNALS_H__ */