1/*===-- llvm-c/Support.h - Support C Interface --------------------*- C -*-===*\ 2|* *| 3|* The LLVM Compiler Infrastructure *| 4|* *| 5|* This file is distributed under the University of Illinois Open Source *| 6|* License. See LICENSE.TXT for details. *| 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/Support/DataTypes.h" 18#include "llvm-c/Types.h" 19 20#ifdef __cplusplus 21extern "C" { 22#endif 23 24/** 25 * This function permanently loads the dynamic library at the given path. 26 * It is safe to call this function multiple times for the same library. 27 * 28 * @see sys::DynamicLibrary::LoadLibraryPermanently() 29 */ 30LLVMBool LLVMLoadLibraryPermanently(const char* Filename); 31 32/** 33 * This function parses the given arguments using the LLVM command line parser. 34 * Note that the only stable thing about this function is its signature; you 35 * cannot rely on any particular set of command line arguments being interpreted 36 * the same way across LLVM versions. 37 * 38 * @see llvm::cl::ParseCommandLineOptions() 39 */ 40void LLVMParseCommandLineOptions(int argc, const char *const *argv, 41 const char *Overview); 42 43/** 44 * This function will search through all previously loaded dynamic 45 * libraries for the symbol \p symbolName. If it is found, the address of 46 * that symbol is returned. If not, null is returned. 47 * 48 * @see sys::DynamicLibrary::SearchForAddressOfSymbol() 49 */ 50void *LLVMSearchForAddressOfSymbol(const char *symbolName); 51 52/** 53 * This functions permanently adds the symbol \p symbolName with the 54 * value \p symbolValue. These symbols are searched before any 55 * libraries. 56 * 57 * @see sys::DynamicLibrary::AddSymbol() 58 */ 59void LLVMAddSymbol(const char *symbolName, void *symbolValue); 60 61#ifdef __cplusplus 62} 63#endif 64 65#endif 66