003 File Manager
Current Path:
/usr/src/contrib/llvm-project/llvm/tools/llvm-objcopy/MachO
usr
/
src
/
contrib
/
llvm-project
/
llvm
/
tools
/
llvm-objcopy
/
MachO
/
📁
..
📄
MachOLayoutBuilder.cpp
(15.24 KB)
📄
MachOLayoutBuilder.h
(1.49 KB)
📄
MachOObjcopy.cpp
(13.95 KB)
📄
MachOObjcopy.h
(903 B)
📄
MachOReader.cpp
(11.87 KB)
📄
MachOReader.h
(1.72 KB)
📄
MachOWriter.cpp
(18.89 KB)
📄
MachOWriter.h
(1.81 KB)
📄
Object.cpp
(5.5 KB)
📄
Object.h
(13.04 KB)
Editing: MachOWriter.h
//===- MachOWriter.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 // //===----------------------------------------------------------------------===// #include "../Buffer.h" #include "MachOLayoutBuilder.h" #include "MachOObjcopy.h" #include "Object.h" #include "llvm/BinaryFormat/MachO.h" #include "llvm/Object/MachO.h" namespace llvm { class Error; namespace objcopy { namespace macho { class MachOWriter { Object &O; bool Is64Bit; bool IsLittleEndian; uint64_t PageSize; Buffer &B; MachOLayoutBuilder LayoutBuilder; size_t headerSize() const; size_t loadCommandsSize() const; size_t symTableSize() const; size_t strTableSize() const; void writeHeader(); void writeLoadCommands(); template <typename StructType> void writeSectionInLoadCommand(const Section &Sec, uint8_t *&Out); void writeSections(); void writeSymbolTable(); void writeStringTable(); void writeRebaseInfo(); void writeBindInfo(); void writeWeakBindInfo(); void writeLazyBindInfo(); void writeExportInfo(); void writeIndirectSymbolTable(); void writeLinkData(Optional<size_t> LCIndex, const LinkData &LD); void writeCodeSignatureData(); void writeDataInCodeData(); void writeFunctionStartsData(); void writeTail(); public: MachOWriter(Object &O, bool Is64Bit, bool IsLittleEndian, uint64_t PageSize, Buffer &B) : O(O), Is64Bit(Is64Bit), IsLittleEndian(IsLittleEndian), PageSize(PageSize), B(B), LayoutBuilder(O, Is64Bit, PageSize) {} size_t totalSize() const; Error finalize(); Error write(); }; } // end namespace macho } // end namespace objcopy } // end namespace llvm
Upload File
Create Folder