5 #ifndef _MONO_METADATA_IMAGE_HASHES_H_
6 #define _MONO_METADATA_IMAGE_HASHES_H_
9 #include <mono/metadata/object-forward.h>
10 #include <mono/metadata/loader-internals.h>
11 #include <mono/utils/mono-forward.h>
12 #include <mono/utils/mono-error.h>
15 * The "loaded images" hashes keep track of the various assemblies and netmodules loaded
16 * There are four, for all combinations of [look up by path or assembly name?]
17 * and [normal or reflection-only load?, as in Assembly.ReflectionOnlyLoad]
20 MONO_LOADED_IMAGES_HASH_PATH
= 0,
21 MONO_LOADED_IMAGES_HASH_PATH_REFONLY
= 1,
22 MONO_LOADED_IMAGES_HASH_NAME
= 2,
23 MONO_LOADED_IMAGES_HASH_NAME_REFONLY
= 3,
24 MONO_LOADED_IMAGES_HASH_COUNT
= 4
27 struct _MonoLoadedImages
{
28 MonoAssemblyLoadContext
*owner
; /* NULL if global */
29 GHashTable
*loaded_images_hashes
[MONO_LOADED_IMAGES_HASH_COUNT
];
33 mono_loaded_images_init (MonoLoadedImages
*li
, MonoAssemblyLoadContext
*owner
);
36 mono_loaded_images_cleanup (MonoLoadedImages
*li
, gboolean shutdown
);
39 mono_loaded_images_free (MonoLoadedImages
*li
);
42 mono_loaded_images_get_hash (MonoLoadedImages
*li
, gboolean refonly
);
45 mono_loaded_images_get_by_name_hash (MonoLoadedImages
*li
, gboolean refonly
);
48 mono_loaded_images_remove_image (MonoImage
*image
);
51 mono_image_get_loaded_images_for_modules (MonoImage
*image
);
53 #ifndef ENABLE_NETCORE
55 mono_get_global_loaded_images (void);
59 mono_find_image_owner (void *ptr
);
62 mono_images_lock (void);
65 mono_images_unlock (void);