1 /*===-- llvm-c/Support.h - Support C Interface --------------------*- C -*-===*\ 2 |* *| 3 |* Part of the LLVM Project, under the Apache License v2.0 with LLVM *| 4 |* Exceptions. *| 5 |* See https://llvm.org/LICENSE.txt for license information. *| 6 |* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *| 7 |* *| 8 |*===----------------------------------------------------------------------===*| 9 |* *| 10 |* This file defines the C interface to the LLVM support library. *| 11 |* *| 12 \*===----------------------------------------------------------------------===*/ 13 14 #ifndef LLVM_C_SUPPORT_H 15 #define LLVM_C_SUPPORT_H 16 17 #include "llvm-c/DataTypes.h" 18 #include "llvm-c/ExternC.h" 19 #include "llvm-c/Types.h" 20 21 LLVM_C_EXTERN_C_BEGIN 22 23 /** 24 * @addtogroup LLVMCCore 25 * 26 * @{ 27 */ 28 29 /** 30 * This function permanently loads the dynamic library at the given path. 31 * It is safe to call this function multiple times for the same library. 32 * 33 * @see sys::DynamicLibrary::LoadLibraryPermanently() 34 */ 35 LLVMBool LLVMLoadLibraryPermanently(const char* Filename); 36 37 /** 38 * This function parses the given arguments using the LLVM command line parser. 39 * Note that the only stable thing about this function is its signature; you 40 * cannot rely on any particular set of command line arguments being interpreted 41 * the same way across LLVM versions. 42 * 43 * @see llvm::cl::ParseCommandLineOptions() 44 */ 45 void LLVMParseCommandLineOptions(int argc, const char *const *argv, 46 const char *Overview); 47 48 /** 49 * This function will search through all previously loaded dynamic 50 * libraries for the symbol \p symbolName. If it is found, the address of 51 * that symbol is returned. If not, null is returned. 52 * 53 * @see sys::DynamicLibrary::SearchForAddressOfSymbol() 54 */ 55 void *LLVMSearchForAddressOfSymbol(const char *symbolName); 56 57 /** 58 * This functions permanently adds the symbol \p symbolName with the 59 * value \p symbolValue. These symbols are searched before any 60 * libraries. 61 * 62 * @see sys::DynamicLibrary::AddSymbol() 63 */ 64 void LLVMAddSymbol(const char *symbolName, void *symbolValue); 65 66 /** 67 * @} 68 */ 69 70 LLVM_C_EXTERN_C_END 71 72 #endif 73