|  | /*===-- llvm-c/BitWriter.h - BitWriter Library C Interface ------*- C++ -*-===*\ | 
|  | |*                                                                            *| | 
|  | |*                     The LLVM Compiler Infrastructure                       *| | 
|  | |*                                                                            *| | 
|  | |* This file is distributed under the University of Illinois Open Source      *| | 
|  | |* License. See LICENSE.TXT for details.                                      *| | 
|  | |*                                                                            *| | 
|  | |*===----------------------------------------------------------------------===*| | 
|  | |*                                                                            *| | 
|  | |* This header declares the C interface to libLLVMBitWriter.a, which          *| | 
|  | |* implements output of the LLVM bitcode format.                              *| | 
|  | |*                                                                            *| | 
|  | |* Many exotic languages can interoperate with C code but have a harder time  *| | 
|  | |* with C++ due to name mangling. So in addition to C, this interface enables *| | 
|  | |* tools written in such languages.                                           *| | 
|  | |*                                                                            *| | 
|  | \*===----------------------------------------------------------------------===*/ | 
|  |  | 
|  | #ifndef LLVM_C_BITWRITER_H | 
|  | #define LLVM_C_BITWRITER_H | 
|  |  | 
|  | #include "llvm-c/Types.h" | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | extern "C" { | 
|  | #endif | 
|  |  | 
|  | /** | 
|  | * @defgroup LLVMCBitWriter Bit Writer | 
|  | * @ingroup LLVMC | 
|  | * | 
|  | * @{ | 
|  | */ | 
|  |  | 
|  | /*===-- Operations on modules ---------------------------------------------===*/ | 
|  |  | 
|  | /** Writes a module to the specified path. Returns 0 on success. */ | 
|  | int LLVMWriteBitcodeToFile(LLVMModuleRef M, const char *Path); | 
|  |  | 
|  | /** Writes a module to an open file descriptor. Returns 0 on success. */ | 
|  | int LLVMWriteBitcodeToFD(LLVMModuleRef M, int FD, int ShouldClose, | 
|  | int Unbuffered); | 
|  |  | 
|  | /** Deprecated for LLVMWriteBitcodeToFD. Writes a module to an open file | 
|  | descriptor. Returns 0 on success. Closes the Handle. */ | 
|  | int LLVMWriteBitcodeToFileHandle(LLVMModuleRef M, int Handle); | 
|  |  | 
|  | /** Writes a module to a new memory buffer and returns it. */ | 
|  | LLVMMemoryBufferRef LLVMWriteBitcodeToMemoryBuffer(LLVMModuleRef M); | 
|  |  | 
|  | /** | 
|  | * @} | 
|  | */ | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | } | 
|  | #endif | 
|  |  | 
|  | #endif |