Xamarin Public Jenkins 6992685b86 Imported Upstream version 4.2.0.179
Former-commit-id: 0a113cb3a6feb7873f632839b1307cc6033cd595
2015-11-10 14:54:39 +00:00

50 lines
1.6 KiB
C

#ifndef __MONO_UTILS_DL_H__
#define __MONO_UTILS_DL_H__
#include "mono/utils/mono-compiler.h"
#include "mono/utils/mono-dl-fallback.h"
#ifdef TARGET_WIN32
#define MONO_SOLIB_EXT ".dll"
#elif defined(__ppc__) && defined(TARGET_MACH)
#define MONO_SOLIB_EXT ".dylib"
#elif defined(TARGET_MACH) && defined(TARGET_X86) && !defined(__native_client_codegen__)
#define MONO_SOLIB_EXT ".dylib"
#elif defined(TARGET_MACH) && defined(TARGET_AMD64) && !defined(__native_client_codegen__)
#define MONO_SOLIB_EXT ".dylib"
#else
#define MONO_SOLIB_EXT ".so"
#endif
typedef struct {
void *handle;
int main_module;
/* If not NULL, use the methods in MonoDlFallbackHandler instead of the LL_* methods */
MonoDlFallbackHandler *dl_fallback;
} MonoDl;
MonoDl* mono_dl_open (const char *name, int flags, char **error_msg) MONO_LLVM_INTERNAL;
char* mono_dl_symbol (MonoDl *module, const char *name, void **symbol) MONO_LLVM_INTERNAL;
void mono_dl_close (MonoDl *module) MONO_LLVM_INTERNAL;
char* mono_dl_build_path (const char *directory, const char *name, void **iter);
MonoDl* mono_dl_open_runtime_lib (const char *lib_name, int flags, char **error_msg);
//Platform API for mono_dl
const char* mono_dl_get_so_prefix (void);
const char** mono_dl_get_so_suffixes (void);
void* mono_dl_open_file (const char *file, int flags);
void mono_dl_close_handle (MonoDl *module);
void* mono_dl_lookup_symbol (MonoDl *module, const char *name);
int mono_dl_convert_flags (int flags);
char* mono_dl_current_error_string (void);
int mono_dl_get_executable_path (char *buf, int buflen);
const char* mono_dl_get_system_dir (void);
#endif /* __MONO_UTILS_DL_H__ */