mono-dl-fallback.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /**
  2. * \file
  3. */
  4. #ifndef __MONO_UTILS_DL_FALLBACK_H__
  5. #define __MONO_UTILS_DL_FALLBACK_H__
  6. #include <mono/utils/mono-publib.h>
  7. MONO_BEGIN_DECLS
  8. enum {
  9. MONO_DL_EAGER = 0,
  10. MONO_DL_LAZY = 1,
  11. // If MONO_DL_LOCAL is set, it will trump MONO_DL_GLOBAL.
  12. MONO_DL_LOCAL = 2,
  13. // MONO_DL_MASK is unused internally and no longer a full mask on netcore, given the introduction of MONO_DL_GLOBAL. Avoid.
  14. MONO_DL_MASK = 3,
  15. // Only applicable when building Mono in netcore mode.
  16. MONO_DL_GLOBAL = 4
  17. };
  18. /*
  19. * This is the dynamic loader fallback API
  20. */
  21. typedef struct MonoDlFallbackHandler MonoDlFallbackHandler;
  22. /*
  23. * The "err" variable contents must be allocated using g_malloc or g_strdup
  24. */
  25. typedef void* (*MonoDlFallbackLoad) (const char *name, int flags, char **err, void *user_data);
  26. typedef void* (*MonoDlFallbackSymbol) (void *handle, const char *name, char **err, void *user_data);
  27. typedef void* (*MonoDlFallbackClose) (void *handle, void *user_data);
  28. MONO_API MonoDlFallbackHandler *mono_dl_fallback_register (MonoDlFallbackLoad load_func, MonoDlFallbackSymbol symbol_func,
  29. MonoDlFallbackClose close_func, void *user_data);
  30. MONO_API void mono_dl_fallback_unregister (MonoDlFallbackHandler *handler);
  31. MONO_END_DECLS
  32. #endif /* __MONO_UTILS_DL_FALLBACK_H__ */