1*81ad6265SDimitry Andric //===- MachOObjcopy.h -------------------------------------------*- C++ -*-===//
2*81ad6265SDimitry Andric //
3*81ad6265SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*81ad6265SDimitry Andric // See https://llvm.org/LICENSE.txt for license information.
5*81ad6265SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*81ad6265SDimitry Andric //
7*81ad6265SDimitry Andric //===----------------------------------------------------------------------===//
8*81ad6265SDimitry Andric 
9*81ad6265SDimitry Andric #ifndef LLVM_OBJCOPY_MACHO_MACHOOBJCOPY_H
10*81ad6265SDimitry Andric #define LLVM_OBJCOPY_MACHO_MACHOOBJCOPY_H
11*81ad6265SDimitry Andric 
12*81ad6265SDimitry Andric namespace llvm {
13*81ad6265SDimitry Andric class Error;
14*81ad6265SDimitry Andric class raw_ostream;
15*81ad6265SDimitry Andric 
16*81ad6265SDimitry Andric namespace object {
17*81ad6265SDimitry Andric class MachOObjectFile;
18*81ad6265SDimitry Andric class MachOUniversalBinary;
19*81ad6265SDimitry Andric } // end namespace object
20*81ad6265SDimitry Andric 
21*81ad6265SDimitry Andric namespace objcopy {
22*81ad6265SDimitry Andric struct CommonConfig;
23*81ad6265SDimitry Andric struct MachOConfig;
24*81ad6265SDimitry Andric class MultiFormatConfig;
25*81ad6265SDimitry Andric 
26*81ad6265SDimitry Andric namespace macho {
27*81ad6265SDimitry Andric /// Apply the transformations described by \p Config and \p MachOConfig to
28*81ad6265SDimitry Andric /// \p In and writes the result into \p Out.
29*81ad6265SDimitry Andric /// \returns any Error encountered whilst performing the operation.
30*81ad6265SDimitry Andric Error executeObjcopyOnBinary(const CommonConfig &Config,
31*81ad6265SDimitry Andric                              const MachOConfig &MachOConfig,
32*81ad6265SDimitry Andric                              object::MachOObjectFile &In, raw_ostream &Out);
33*81ad6265SDimitry Andric 
34*81ad6265SDimitry Andric /// Apply the transformations described by \p Config and \p MachOConfig to
35*81ad6265SDimitry Andric /// \p In and writes the result into \p Out.
36*81ad6265SDimitry Andric /// \returns any Error encountered whilst performing the operation.
37*81ad6265SDimitry Andric Error executeObjcopyOnMachOUniversalBinary(
38*81ad6265SDimitry Andric     const MultiFormatConfig &Config, const object::MachOUniversalBinary &In,
39*81ad6265SDimitry Andric     raw_ostream &Out);
40*81ad6265SDimitry Andric 
41*81ad6265SDimitry Andric } // end namespace macho
42*81ad6265SDimitry Andric } // end namespace objcopy
43*81ad6265SDimitry Andric } // end namespace llvm
44*81ad6265SDimitry Andric 
45*81ad6265SDimitry Andric #endif // LLVM_OBJCOPY_MACHO_MACHOOBJCOPY_H
46