Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-10 08:44:16

0001 //===- ELFObjcopy.h ---------------------------------------------*- C++ -*-===//
0002 //
0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
0004 // See https://llvm.org/LICENSE.txt for license information.
0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
0006 //
0007 //===----------------------------------------------------------------------===//
0008 
0009 #ifndef LLVM_OBJCOPY_ELF_ELFOBJCOPY_H
0010 #define LLVM_OBJCOPY_ELF_ELFOBJCOPY_H
0011 
0012 namespace llvm {
0013 class Error;
0014 class MemoryBuffer;
0015 class raw_ostream;
0016 
0017 namespace object {
0018 class ELFObjectFileBase;
0019 } // end namespace object
0020 
0021 namespace objcopy {
0022 struct CommonConfig;
0023 struct ELFConfig;
0024 
0025 namespace elf {
0026 /// Apply the transformations described by \p Config and \p ELFConfig to
0027 /// \p In, which must represent an IHex file, and writes the result
0028 /// into \p Out.
0029 /// \returns any Error encountered whilst performing the operation.
0030 Error executeObjcopyOnIHex(const CommonConfig &Config,
0031                            const ELFConfig &ELFConfig, MemoryBuffer &In,
0032                            raw_ostream &Out);
0033 
0034 /// Apply the transformations described by \p Config and \p ELFConfig to
0035 /// \p In, which is treated as a raw binary input, and writes the result
0036 /// into \p Out.
0037 /// \returns any Error encountered whilst performing the operation.
0038 Error executeObjcopyOnRawBinary(const CommonConfig &Config,
0039                                 const ELFConfig &ELFConfig, MemoryBuffer &In,
0040                                 raw_ostream &Out);
0041 
0042 /// Apply the transformations described by \p Config and \p ELFConfig to
0043 /// \p In and writes the result into \p Out.
0044 /// \returns any Error encountered whilst performing the operation.
0045 Error executeObjcopyOnBinary(const CommonConfig &Config,
0046                              const ELFConfig &ELFConfig,
0047                              object::ELFObjectFileBase &In, raw_ostream &Out);
0048 
0049 } // end namespace elf
0050 } // end namespace objcopy
0051 } // end namespace llvm
0052 
0053 #endif // LLVM_OBJCOPY_ELF_ELFOBJCOPY_H