003 File Manager
Current Path:
/usr/src/contrib/llvm-project/llvm/include/llvm/DebugInfo/GSYM
usr
/
src
/
contrib
/
llvm-project
/
llvm
/
include
/
llvm
/
DebugInfo
/
GSYM
/
📁
..
📄
DwarfTransformer.h
(3.09 KB)
📄
FileEntry.h
(2.08 KB)
📄
FileWriter.h
(4.41 KB)
📄
FunctionInfo.h
(8.4 KB)
📄
GsymCreator.h
(12.41 KB)
📄
GsymReader.h
(11.86 KB)
📄
Header.h
(5.55 KB)
📄
InlineInfo.h
(8.07 KB)
📄
LineEntry.h
(1.77 KB)
📄
LineTable.h
(9 KB)
📄
LookupResult.h
(2.43 KB)
📄
ObjectFileTransformer.h
(1.53 KB)
📄
Range.h
(4.65 KB)
📄
StringTable.h
(1.58 KB)
Editing: FileWriter.h
//===- FileWriter.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_DEBUGINFO_GSYM_FILEWRITER_H #define LLVM_DEBUGINFO_GSYM_FILEWRITER_H #include "llvm/ADT/ArrayRef.h" #include "llvm/Support/Endian.h" #include <stddef.h> #include <stdint.h> #include <sys/types.h> namespace llvm { class raw_pwrite_stream; namespace gsym { /// A simplified binary data writer class that doesn't require targets, target /// definitions, architectures, or require any other optional compile time /// libraries to be enabled via the build process. This class needs the ability /// to seek to different spots in the binary stream that is produces to fixup /// offsets and sizes. class FileWriter { llvm::raw_pwrite_stream &OS; llvm::support::endianness ByteOrder; public: FileWriter(llvm::raw_pwrite_stream &S, llvm::support::endianness B) : OS(S), ByteOrder(B) {} ~FileWriter(); /// Write a single uint8_t value into the stream at the current file /// position. /// /// \param Value The value to write into the stream. void writeU8(uint8_t Value); /// Write a single uint16_t value into the stream at the current file /// position. The value will be byte swapped if needed to match the byte /// order specified during construction. /// /// \param Value The value to write into the stream. void writeU16(uint16_t Value); /// Write a single uint32_t value into the stream at the current file /// position. The value will be byte swapped if needed to match the byte /// order specified during construction. /// /// \param Value The value to write into the stream. void writeU32(uint32_t Value); /// Write a single uint64_t value into the stream at the current file /// position. The value will be byte swapped if needed to match the byte /// order specified during construction. /// /// \param Value The value to write into the stream. void writeU64(uint64_t Value); /// Write the value into the stream encoded using signed LEB128 at the /// current file position. /// /// \param Value The value to write into the stream. void writeSLEB(int64_t Value); /// Write the value into the stream encoded using unsigned LEB128 at the /// current file position. /// /// \param Value The value to write into the stream. void writeULEB(uint64_t Value); /// Write an array of uint8_t values into the stream at the current file /// position. /// /// \param Data An array of values to write into the stream. void writeData(llvm::ArrayRef<uint8_t> Data); /// Write a NULL terminated C string into the stream at the current file /// position. The entire contents of Str will be written into the steam at /// the current file position and then an extra NULL termation byte will be /// written. It is up to the user to ensure that Str doesn't contain any NULL /// characters unless the additional NULL characters are desired. /// /// \param Str The value to write into the stream. void writeNullTerminated(llvm::StringRef Str); /// Fixup a uint32_t value at the specified offset in the stream. This /// function will save the current file position, seek to the specified /// offset, overwrite the data using Value, and then restore the file /// position to the previous file position. /// /// \param Value The value to write into the stream. /// \param Offset The offset at which to write the Value within the stream. void fixup32(uint32_t Value, uint64_t Offset); /// Pad with zeroes at the current file position until the current file /// position matches the specified alignment. /// /// \param Align An integer speciying the desired alignment. This does not /// need to be a power of two. void alignTo(size_t Align); /// Return the current offset within the file. /// /// \return The unsigned offset from the start of the file of the current /// file position. uint64_t tell(); llvm::raw_pwrite_stream &get_stream() { return OS; } private: FileWriter(const FileWriter &rhs) = delete; void operator=(const FileWriter &rhs) = delete; }; } // namespace gsym } // namespace llvm #endif // #ifndef LLVM_DEBUGINFO_GSYM_FILEWRITER_H
Upload File
Create Folder