1 /**
2  * \file
3  */
4 
5 #ifndef __MONO_UTILS_DL_FALLBACK_H__
6 #define __MONO_UTILS_DL_FALLBACK_H__
7 
8 #include <mono/utils/mono-publib.h>
9 
10 MONO_BEGIN_DECLS
11 
12 enum {
13 	MONO_DL_EAGER = 0,
14 	MONO_DL_LAZY  = 1,
15 	MONO_DL_LOCAL = 2,
16 	MONO_DL_MASK  = 3
17 };
18 
19 /*
20  * This is the dynamic loader fallback API
21  */
22 typedef struct MonoDlFallbackHandler MonoDlFallbackHandler;
23 
24 /*
25  * The "err" variable contents must be allocated using g_malloc or g_strdup
26  */
27 typedef void* (*MonoDlFallbackLoad) (const char *name, int flags, char **err, void *user_data);
28 typedef void* (*MonoDlFallbackSymbol) (void *handle, const char *name, char **err, void *user_data);
29 typedef void* (*MonoDlFallbackClose) (void *handle, void *user_data);
30 
31 MONO_API MonoDlFallbackHandler *mono_dl_fallback_register (MonoDlFallbackLoad load_func, MonoDlFallbackSymbol symbol_func,
32 						  MonoDlFallbackClose close_func, void *user_data);
33 
34 MONO_API void                   mono_dl_fallback_unregister (MonoDlFallbackHandler *handler);
35 
36 MONO_END_DECLS
37 
38 #endif /* __MONO_UTILS_DL_FALLBACK_H__ */
39 
40