| //===- ELFObjcopy.h ---------------------------------------------*- C++ -*-===// |
| // |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
| // See https://llvm.org/LICENSE.txt for license information. |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #ifndef LLVM_OBJCOPY_ELF_ELFOBJCOPY_H |
| #define LLVM_OBJCOPY_ELF_ELFOBJCOPY_H |
| |
| namespace llvm { |
| class Error; |
| class MemoryBuffer; |
| class raw_ostream; |
| |
| namespace object { |
| class ELFObjectFileBase; |
| } // end namespace object |
| |
| namespace objcopy { |
| struct CommonConfig; |
| struct ELFConfig; |
| |
| namespace elf { |
| /// Apply the transformations described by \p Config and \p ELFConfig to |
| /// \p In, which must represent an IHex file, and writes the result |
| /// into \p Out. |
| /// \returns any Error encountered whilst performing the operation. |
| Error executeObjcopyOnIHex(const CommonConfig &Config, |
| const ELFConfig &ELFConfig, MemoryBuffer &In, |
| raw_ostream &Out); |
| |
| /// Apply the transformations described by \p Config and \p ELFConfig to |
| /// \p In, which is treated as a raw binary input, and writes the result |
| /// into \p Out. |
| /// \returns any Error encountered whilst performing the operation. |
| Error executeObjcopyOnRawBinary(const CommonConfig &Config, |
| const ELFConfig &ELFConfig, MemoryBuffer &In, |
| raw_ostream &Out); |
| |
| /// Apply the transformations described by \p Config and \p ELFConfig to |
| /// \p In and writes the result into \p Out. |
| /// \returns any Error encountered whilst performing the operation. |
| Error executeObjcopyOnBinary(const CommonConfig &Config, |
| const ELFConfig &ELFConfig, |
| object::ELFObjectFileBase &In, raw_ostream &Out); |
| |
| } // end namespace elf |
| } // end namespace objcopy |
| } // end namespace llvm |
| |
| #endif // LLVM_OBJCOPY_ELF_ELFOBJCOPY_H |