Add two wrappers which are used to transition between normal and gsharedvt code.
[mono.git] / mono / metadata / metadata-internals.h
index 3ebb36c3ae23d44fc1c9817a9c3a415d8db0d723..3bcfc593170f17c547649d01490a23f74d230a66 100644 (file)
@@ -138,6 +138,7 @@ struct _MonoImage {
        guint32 raw_data_len;
        guint8 raw_buffer_used    : 1;
        guint8 raw_data_allocated : 1;
+       guint8 fileio_used : 1;
 
 #ifdef HOST_WIN32
        /* Module was loaded using LoadLibrary. */
@@ -258,8 +259,12 @@ struct _MonoImage {
        /*
         * indexed by SignatureMethodPair
         */
-       GHashTable *complex_delegate_cache;
+       GHashTable *delegate_abstract_invoke_cache;
 
+       /*
+        * indexed by SignatureMethodPair
+        */
+       GHashTable *delegate_bound_static_invoke_cache;
        /*
         * indexed by MonoMethod pointers 
         */
@@ -268,6 +273,7 @@ struct _MonoImage {
        GHashTable *managed_wrapper_cache;
        GHashTable *native_wrapper_cache;
        GHashTable *native_wrapper_aot_cache;
+       GHashTable *native_func_wrapper_aot_cache;
        GHashTable *remoting_invoke_cache;
        GHashTable *synchronized_cache;
        GHashTable *unbox_wrapper_cache;
@@ -317,6 +323,12 @@ struct _MonoImage {
        GHashTable *var_cache_slow;
        GHashTable *mvar_cache_slow;
 
+       /* Maps malloc-ed char* pinvoke scope -> MonoDl* */
+       GHashTable *pinvoke_scopes;
+
+       /* Maps malloc-ed char* pinvoke scope -> malloced-ed char* filename */
+       GHashTable *pinvoke_scope_filenames;
+
        /*
         * No other runtime locks must be taken while holding this lock.
         * It's meant to be used only to mutate and query structures part of this image.
@@ -412,6 +424,10 @@ struct _MonoDynamicImage {
        GHashTable *vararg_aux_hash;
        MonoGHashTable *generic_def_objects;
        MonoGHashTable *methodspec;
+       /*
+        * Maps final token values to the object they describe.
+        */
+       MonoGHashTable *remapped_tokens;
        gboolean run;
        gboolean save;
        gboolean initial_image;
@@ -649,6 +665,7 @@ void mono_assembly_addref       (MonoAssembly *assembly) MONO_INTERNAL;
 void mono_assembly_load_friends (MonoAssembly* ass) MONO_INTERNAL;
 gboolean mono_assembly_has_skip_verification (MonoAssembly* ass) MONO_INTERNAL;
 
+void mono_assembly_release_gc_roots (MonoAssembly *assembly) MONO_INTERNAL;
 gboolean mono_assembly_close_except_image_pools (MonoAssembly *assembly) MONO_INTERNAL;
 void mono_assembly_close_finish (MonoAssembly *assembly) MONO_INTERNAL;