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