003 File Manager
Current Path:
/usr/src/contrib/llvm-project/llvm/include/llvm/Object
usr
/
src
/
contrib
/
llvm-project
/
llvm
/
include
/
llvm
/
Object
/
📁
..
📄
Archive.h
(7.8 KB)
📄
ArchiveWriter.h
(1.47 KB)
📄
Binary.h
(6.1 KB)
📄
COFF.h
(41.58 KB)
📄
COFFImportFile.h
(3.59 KB)
📄
COFFModuleDefinition.h
(1.69 KB)
📄
CVDebugRecord.h
(1.21 KB)
📄
Decompressor.h
(2.22 KB)
📄
ELF.h
(28.9 KB)
📄
ELFObjectFile.h
(38.56 KB)
📄
ELFTypes.h
(27.83 KB)
📄
Error.h
(2.87 KB)
📄
IRObjectFile.h
(2.89 KB)
📄
IRSymtab.h
(11.3 KB)
📄
MachO.h
(27.3 KB)
📄
MachOUniversal.h
(4.74 KB)
📄
Minidump.h
(8.98 KB)
📄
ModuleSymbolTable.h
(2.21 KB)
📄
ObjectFile.h
(18.91 KB)
📄
RelocationResolver.h
(1.4 KB)
📄
StackMapParser.h
(13.71 KB)
📄
SymbolSize.h
(793 B)
📄
SymbolicFile.h
(6.47 KB)
📄
TapiFile.h
(1.77 KB)
📄
TapiUniversal.h
(3.36 KB)
📄
Wasm.h
(13.02 KB)
📄
WasmTraits.h
(2.1 KB)
📄
WindowsMachineFlag.h
(1.02 KB)
📄
WindowsResource.h
(9.17 KB)
📄
XCOFFObjectFile.h
(13.5 KB)
Editing: Decompressor.h
//===-- Decompressor.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_OBJECT_DECOMPRESSOR_H #define LLVM_OBJECT_DECOMPRESSOR_H #include "llvm/ADT/SmallString.h" #include "llvm/ADT/StringRef.h" #include "llvm/Object/ObjectFile.h" namespace llvm { namespace object { /// Decompressor helps to handle decompression of compressed sections. class Decompressor { public: /// Create decompressor object. /// @param Name Section name. /// @param Data Section content. /// @param IsLE Flag determines if Data is in little endian form. /// @param Is64Bit Flag determines if object is 64 bit. static Expected<Decompressor> create(StringRef Name, StringRef Data, bool IsLE, bool Is64Bit); /// Resize the buffer and uncompress section data into it. /// @param Out Destination buffer. template <class T> Error resizeAndDecompress(T &Out) { Out.resize(DecompressedSize); return decompress({Out.data(), (size_t)DecompressedSize}); } /// Uncompress section data to raw buffer provided. /// @param Buffer Destination buffer. Error decompress(MutableArrayRef<char> Buffer); /// Return memory buffer size required for decompression. uint64_t getDecompressedSize() { return DecompressedSize; } /// Return true if section is compressed, including gnu-styled case. static bool isCompressed(const object::SectionRef &Section); /// Return true if section is a ELF compressed one. static bool isCompressedELFSection(uint64_t Flags, StringRef Name); /// Return true if section name matches gnu style compressed one. static bool isGnuStyle(StringRef Name); private: Decompressor(StringRef Data); Error consumeCompressedGnuHeader(); Error consumeCompressedZLibHeader(bool Is64Bit, bool IsLittleEndian); StringRef SectionData; uint64_t DecompressedSize; }; } // end namespace object } // end namespace llvm #endif // LLVM_OBJECT_DECOMPRESSOR_H
Upload File
Create Folder