summaryrefslogtreecommitdiff
path: root/include/llvm/System
diff options
context:
space:
mode:
Diffstat (limited to 'include/llvm/System')
-rw-r--r--include/llvm/System/DynamicLibrary.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/include/llvm/System/DynamicLibrary.h b/include/llvm/System/DynamicLibrary.h
index d8535284eb..6f1ebb5991 100644
--- a/include/llvm/System/DynamicLibrary.h
+++ b/include/llvm/System/DynamicLibrary.h
@@ -57,6 +57,31 @@ namespace sys {
~DynamicLibrary();
/// @}
+ /// @name Functions
+ /// @{
+ public:
+ /// This function allows a library to be loaded without instantiating a
+ /// DynamicLibrary object. Consequently, it is marked as being permanent
+ /// and will only be unloaded when the program terminates.
+ /// @throws std::string on error.
+ /// @brief Open a dynamic library permanently.
+ static void LoadLibraryPermanently(const char* filename);
+
+ /// This function will search through all previously loaded dynamic
+ /// libraries for the symbol \p symbolName. If it is found, the addressof
+ /// that symbol is returned. If not, null is returned. Note that this will
+ /// search permanently loaded libraries (LoadLibraryPermanently) as well
+ /// as ephemerally loaded libraries (constructors).
+ /// @throws std::string on error.
+ /// @brief Search through libraries for address of a symbol
+ static void* SearchForAddressOfSymbol(const char* symbolName);
+
+ /// @brief Convenience function for C++ophiles.
+ static void* SearchForAddressOfSymbol(const std::string& symbolName) {
+ return SearchForAddressOfSymbol(symbolName.c_str());
+ }
+
+ /// @}
/// @name Accessors
/// @{
public: