Add two wrappers which are used to transition between normal and gsharedvt code.
[mono.git] / mono / metadata / metadata-internals.h
index 4a4ff17e5e81a7433469f1b2c9681085062e66ae..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. */
@@ -272,12 +273,14 @@ 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;
        GHashTable *cominterop_invoke_cache;
        GHashTable *cominterop_wrapper_cache; /* LOCKING: marshal lock */
        GHashTable *thunk_invoke_cache;
+       GHashTable *wrapper_param_names;
 
        /*
         * indexed by MonoClass pointers
@@ -320,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.
@@ -415,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;
@@ -652,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;
 
@@ -731,5 +745,7 @@ MonoException *mono_get_exception_method_access_msg (const char *msg) MONO_INTER
 
 MonoMethod* method_from_method_def_or_ref (MonoImage *m, guint32 tok, MonoGenericContext *context) MONO_INTERNAL;
 
+MonoMethod *mono_get_method_constrained_with_method (MonoImage *image, MonoMethod *method, MonoClass *constrained_class, MonoGenericContext *context) MONO_INTERNAL;
+
 #endif /* __MONO_METADATA_INTERNALS_H__ */