[arm] Add fast tls support on ios.
[mono.git] / mono / metadata / metadata-internals.h
index cc8faab15be85bf54774b0df1f181734487907ee..8e68399cfa43daa517bfc98e1c53b430182eaf52 100644 (file)
@@ -159,6 +159,9 @@ struct _MonoImage {
        /* Whenever this image contains uncompressed metadata */
        guint8 uncompressed_metadata : 1;
 
+       /* Whenever this image contains metadata only without PE data */
+       guint8 metadata_only : 1;
+
        guint8 checked_module_cctor : 1;
        guint8 has_module_cctor : 1;
 
@@ -275,6 +278,8 @@ struct _MonoImage {
        GHashTable *managed_wrapper_cache;
        GHashTable *native_wrapper_cache;
        GHashTable *native_wrapper_aot_cache;
+       GHashTable *native_wrapper_check_cache;
+       GHashTable *native_wrapper_aot_check_cache;
        GHashTable *native_func_wrapper_aot_cache;
        GHashTable *remoting_invoke_cache;
        GHashTable *synchronized_cache;
@@ -331,6 +336,8 @@ struct _MonoImage {
        MonoClass **mvar_cache_fast;
        GHashTable *var_cache_slow;
        GHashTable *mvar_cache_slow;
+       GHashTable *var_cache_constrained;
+       GHashTable *mvar_cache_constrained;
 
        /* Maps malloc-ed char* pinvoke scope -> MonoDl* */
        GHashTable *pinvoke_scopes;
@@ -664,11 +671,6 @@ mono_metadata_parse_type_full               (MonoImage             *image,
                                             const char            *ptr,
                                             const char           **rptr);
 
-MonoMethodSignature *
-mono_metadata_parse_signature_full          (MonoImage             *image,
-                                            MonoGenericContainer  *generic_container,
-                                            guint32                token);
-
 MONO_API MonoMethodSignature *
 mono_metadata_parse_method_signature_full   (MonoImage             *image,
                                             MonoGenericContainer  *generic_container,
@@ -713,6 +715,12 @@ mono_metadata_lookup_generic_class          (MonoClass                *gclass,
 
 MonoGenericInst * mono_metadata_inflate_generic_inst  (MonoGenericInst *ginst, MonoGenericContext *context, MonoError *error);
 
+guint
+mono_metadata_generic_param_hash (MonoGenericParam *p);
+
+gboolean
+mono_metadata_generic_param_equal (MonoGenericParam *p1, MonoGenericParam *p2);
+
 void mono_dynamic_stream_reset  (MonoDynamicStream* stream);
 void mono_assembly_addref       (MonoAssembly *assembly);
 void mono_assembly_load_friends (MonoAssembly* ass);
@@ -792,6 +800,8 @@ void mono_image_load_names (MonoImage *image);
 
 MonoImage *mono_image_open_raw (const char *fname, MonoImageOpenStatus *status);
 
+MonoImage *mono_image_open_metadata_only (const char *fname, MonoImageOpenStatus *status);
+
 MonoException *mono_get_exception_field_access_msg (const char *msg);
 
 MonoException *mono_get_exception_method_access_msg (const char *msg);
@@ -813,5 +823,8 @@ mono_method_get_signature_checked (MonoMethod *method, MonoImage *image, guint32
 MonoMethod *
 mono_get_method_checked (MonoImage *image, guint32 token, MonoClass *klass, MonoGenericContext *context, MonoError *error);
 
+guint32
+mono_metadata_localscope_from_methoddef (MonoImage *meta, guint32 index);
+
 #endif /* __MONO_METADATA_INTERNALS_H__ */